# Copyright 2021 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/host.gni")
import("//build/rust/rustc_library.gni")

rustc_library("testing") {
  edition = "2024"
  name = "cm_rust_testing"

  testonly = true

  deps = [
    "//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_rust",
    "//sdk/fidl/fuchsia.data:fuchsia.data_rust",
    "//sdk/fidl/fuchsia.io:fuchsia.io_rust",
    "//src/sys/lib/cm_rust",
    "//src/sys/lib/cm_types",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:assert_matches",
    "//third_party/rust_crates:derivative",
    "//third_party/rust_crates:serde_json",
    "//tools/lib/cml",
  ]

  visibility = [
    "//src/connectivity/network/testing/netemul/runner:*",
    "//src/lib/diagnostics/log/rust/tests:*",
    "//src/lib/fuchsia-component-test/realm_builder_server/*",
    "//src/lib/fuchsia-component-test/tests/*",
    "//src/security/lib/scrutiny/frontend:*",
    "//src/security/lib/scrutiny/x:*",
    "//src/sys/component_manager/*",
    "//src/sys/lib/cm_rust/testing:*",
    "//src/sys/lib/component_debug/*",
    "//src/sys/lib/routing/*",
    "//tools/lib/cm_fidl_analyzer/*",
  ]

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