# 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/test/test_package.gni")

rustc_library("io_util") {
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:matches",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [
    "//src/lib/storage/vfs/rust:vfs",
    "//third_party/rust_crates:futures",
  ]

  sources = [
    "src/directory.rs",
    "src/file.rs",
    "src/file/async_reader.rs",
    "src/lib.rs",
    "src/node.rs",
  ]
}

test_package("io_util_tests") {
  deps = [ ":io_util_test" ]

  resources = [
    {
      path = "data/file"
      dest = "file"
    },
    {
      path = "data/fidl_file"
      dest = "fidl_file"
    },
    {
      path = "data/file"
      dest = "subdir/subdir-file"
    },
  ]

  tests = [
    {
      name = "io_util_lib_test"
      dest = "io_util_tests"
      environments = basic_envs
    },
  ]
}
