# Copyright 2019 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/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")
import("//src/storage/testing/isolated_devmgr.gni")
import("//src/sys/build/fuchsia_test_package.gni")

rustc_library("blackout-target") {
  edition = "2018"
  deps = [
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:structopt",
  ]

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

rustc_test("blackout-target-lib-test") {
  edition = "2018"
  deps = [
    "//src/lib/isolated_devmgr/v2_component/rust:isolated-driver-manager",
    "//src/lib/storage/fs_management/rust:fs_management",
    "//src/lib/storage/ramdevice_client",
    "//src/storage/bin/minfs",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:structopt",
  ]
  sources = [
    "src/lib.rs",
    "src/static_tree.rs",
  ]
}

storage_isolated_devmgr_unittest_v2_component(
    "blackout-target-test-component") {
  component_name = "blackout-target-test"
  executable_path = "bin/blackout_target_lib_test"
  runner = "rust_test_runner"
  deps = [ ":blackout-target-lib-test" ]
}

fuchsia_test_package("blackout-target-test") {
  test_components = [ ":blackout-target-test-component" ]
  test_specs = {
    log_settings = {
      # Required due to no access to Cobalt for minfs
      max_severity = "ERROR"
    }
  }
}

group("tests") {
  testonly = true
  public_deps = [
    ":blackout-target-test",
    "//src/storage/testing:storage-isolated-devmgr",
  ]
}
