# 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("//src/sys/build/components.gni")

fuchsia_unittest_component("bt-host-unittests") {
  manifest = "meta/bt-host-unittests.cmx"
  deps = [ "//src/connectivity/bluetooth/core/bt-host:tests" ]
}

fuchsia_unittest_component("bt-lib-fidl-unittests") {
  manifest = "meta/bt-lib-fidl-unittests.cmx"
  deps = [ "//src/connectivity/bluetooth/lib/fidl:tests" ]
}

fuchsia_test_package("bluetooth-tests") {
  test_components = [
    ":bt-host-unittests",
    ":bt-lib-fidl-unittests",
  ]
}

# Define a name provider, which is required for BT-GAP
fuchsia_component("device-name-provider") {
  testonly = true
  manifest = "meta/device-name-provider.cmx"
  deps = [ "//src/bringup/bin/device-name-provider" ]
}

group("tests") {
  testonly = true
  deps = [
    ":bluetooth-tests",
    "audio-device-output-harness",
    "bt-bonding-integration:bt-bonding-integration-tests",
    "bt-gap-lifecycle:bt-gap-lifecycle-tests",
    "bt-host-integration:bt-host-integration-tests",
    "integration:bt-integration-tests",
    "//src/connectivity/bluetooth/core/bt-host:bt_host_bind_test",
  ]
}
