# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/package.gni")

package("tests") {
  testonly = true

  package_name = "bluetooth_tests"

  deps = [
    ":bt-host-unittests",
    "integration",
  ]

  tests = [
    {
      name = "bt-host-unittests"
    },
### Disabled as this is flaking on CI: FLK-7
#    {
#      name = "rust_crates/host_integration"
#      dest = "bt-host-integration-tests"
#    },
### Disabled as this is flaking on CI: FLK-7
#    {
#     name = "rust_crates/host_lifecycle"
#     dest = "bt-host-lifecycle-test"
#   },
  ]
}

executable("bt-host-unittests") {
  testonly = true

  deps = [
    "//garnet/drivers/bluetooth/lib:tests",
    "//garnet/drivers/bluetooth/lib/testing:gtest_main",
    "//third_party/googletest:gtest",
  ]
}
