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

group("tests") {
  testonly = true
  deps = [ ":lowpan-integration-tests" ]
}

fuchsia_unittest_package("lowpan-integration-tests") {
  manifest = "meta/lowpan-integration-tests.cml"
  deps = [
    ":lowpan-integration-tests-bin",
    "//src/connectivity/lowpan/drivers/lowpan-dummy-driver:lowpan-dummy-driver-cmp",
    "//src/connectivity/lowpan/service:lowpanservice-cv2",
  ]
  test_specs = {
    log_settings = {
      max_severity = "WARN"
    }
  }
}

rustc_test("lowpan-integration-tests-bin") {
  name = "lowpan_integration_tests"
  edition = "2021"
  deps = [
    "//sdk/fidl/fuchsia.lowpan:fuchsia.lowpan_rust",
    "//sdk/fidl/fuchsia.lowpan.device:fuchsia.lowpan.device_rust",
    "//sdk/fidl/fuchsia.lowpan.test:fuchsia.lowpan.test_rust",
    "//src/connectivity/lowpan/service",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-component-test",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  sources = [
    "src/lib.rs",
    "src/service_driver_interaction.rs",
  ]
}
