# Copyright 2022 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/components.gni")
import("//build/rust/rustc_test.gni")

rustc_test("bt_inspect_integration_tests") {
  edition = "2021"
  source_root = "src/lib.rs"
  deps = [
    "//src/connectivity/bluetooth/lib/fuchsia-bluetooth",
    "//src/connectivity/bluetooth/testing/bt-test-harness",
    "//src/connectivity/bluetooth/testing/test-harness",
    "//src/lib/diagnostics/reader/rust",
  ]

  sources = [ "src/lib.rs" ]

  configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}

fuchsia_test_component("bt-inspect-integration-tests-component") {
  manifest = "meta/bt-inspect-integration-tests.cml"
  deps = [ ":bt_inspect_integration_tests" ]
}

fuchsia_test_package("bt-inspect-integration-tests") {
  test_components = [ ":bt-inspect-integration-tests-component" ]

  # TODO(https://fxbug.dev/317259066): remove when driver_manager doesn't ERROR
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
  subpackages = [ "//src/connectivity/bluetooth/core/bt-host" ]
}
