# Copyright 2020 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")
import("//build/rust/rustc_library.gni")
import("//src/storage/testing/driver_test_realm.gni")

rustc_binary("bin") {
  output_name = "export-ffs"
  edition = "2021"
  deps = [
    ":export_ffs",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fuchsia-async",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
  ]
  sources = [ "src/main.rs" ]
}

fuchsia_shell_package("export-ffs") {
  deps = [ ":bin" ]
}

rustc_library("export_ffs") {
  with_unit_tests = true
  edition = "2021"
  deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-fs",
    "//src/lib/storage/block_client/rust:remote-block-device",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:byteorder",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
  test_deps = [
    "//src/lib/fuchsia-async",
    "//src/lib/storage/ramdevice_client",
    "//src/lib/storage/vfs/rust:vfs",
    "//third_party/rust_crates:assert_matches",
  ]
  sources = [ "src/lib.rs" ]
}

storage_driver_test_realm_v2_component("export-ffs-tests-component") {
  component_name = "export-ffs-tests"
  deps = [ ":export_ffs_test" ]
}

fuchsia_test_package("export-ffs-tests") {
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
  test_components = [ ":export-ffs-tests-component" ]
}

group("tests") {
  testonly = true
  deps = [ ":export-ffs-tests" ]
}
