# 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")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

test_package("bluetooth-tests") {
  deps = [
    "//src/connectivity/bluetooth/core/bt-host:tests",
    "//src/connectivity/bluetooth/lib/fidl:tests",
    "//src/lib/syslog/rust:syslog",
  ]

  tests = [
    {
      name = "bt-host-unittests"
      environments = basic_envs
    },
    {
      name = "bt-lib-fidl-unittests"
      environments = basic_envs
    },
  ]
}

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