# 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_binary.gni")
import("//src/sys/build/components.gni")

if (is_host) {
  rustc_binary("blobfs-fsck-soft-host") {
    output_name = "blobfs_fsck_soft_host"
    testonly = true
    edition = "2018"
    deps = [
      "//third_party/rust_crates:anyhow",
      "//third_party/rust_crates:structopt",
      "//tools/blackout/blackout-host",
    ]
    source_root = "src/host.rs"
    with_unit_tests = true
    test_environments = [
      {
        dimensions = {
          device_type = "Astro"
        }
        tags = [ "power-failure" ]
        netboot = true
      },
    ]

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

rustc_binary("blobfs-fsck-soft-target-bin") {
  output_name = "blobfs_fsck_soft_target_bin"
  with_unit_tests = true
  testonly = true
  edition = "2018"
  deps = [
    "//src/lib/cstr",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/scoped_task",
    "//src/lib/storage/fs_management/rust:fs_management",
    "//src/lib/storage/ramdevice_client",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:structopt",
    "//tools/blackout/blackout-target",
  ]
  source_root = "src/target.rs"

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

fuchsia_component("blobfs-fsck-soft-target-component") {
  testonly = true
  deps = [
    ":blobfs-fsck-soft-target-bin",
    "//src/storage/bin/blobfs",
    "//src/storage/blobfs/test:blobfs_load_generator",
  ]
  manifest = "meta/blobfs_fsck_soft_target.cmx"
}

fuchsia_package("blobfs-fsck-soft-target") {
  testonly = true
  deps = [ ":blobfs-fsck-soft-target-component" ]
}

fuchsia_component("blobfs-fsck-soft-target-test-component") {
  testonly = true
  deps = [
    ":blobfs-fsck-soft-target-bin_test",
    "//src/storage/bin/blobfs",
    "//src/storage/blobfs/test:blobfs_load_generator",
  ]
  manifest = "meta/blobfs_fsck_soft_target_bin_bin_test.cmx"
}

fuchsia_test_package("blobfs-fsck-soft-target-test") {
  test_components = [ ":blobfs-fsck-soft-target-test-component" ]
  deps = [
    ":blobfs-fsck-soft-target-test-component",
    "//src/lib/storage/ramdevice_client:ramdisk-isolated-devmgr-component",
  ]
}

group("blobfs-fsck-soft") {
  testonly = true
  public_deps = [
    ":blobfs-fsck-soft-host($host_toolchain)",
    ":blobfs-fsck-soft-target",
  ]
}

group("tests") {
  testonly = true
  public_deps = [ ":blobfs-fsck-soft-target-test" ]
}

group("integration") {
  testonly = true
  public_deps = [
    ":blobfs-fsck-soft-host_test($host_toolchain)",
    ":blobfs-fsck-soft-target",
    "//garnet/packages/prod:run",
  ]
}
