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

rustc_library("availability") {
  with_unit_tests = true
  edition = "2021"

  visibility = [
    "//src/sys/component_manager/*",
    "//src/sys/lib/routing/*",
  ]

  deps = [
    "//src/lib/zircon/rust:fuchsia-zircon-status",
    "//src/sys/component_manager/lib/router_error",
    "//src/sys/lib/cm_types",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [ "src/lib.rs" ]

  test_deps = [ "//third_party/rust_crates:test-case" ]
}

fuchsia_unittest_package("fuchsia-routing-availability-tests") {
  deps = [ ":availability_test" ]
}

group("host-routing-availability-tests") {
  testonly = true
  public_deps = [ ":availability_test($host_toolchain)" ]
}

group("tests") {
  testonly = true
  deps = [
    ":fuchsia-routing-availability-tests",
    ":host-routing-availability-tests",
  ]
}
