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

rustc_library("fuchsia-pkg-testing") {
  version = "0.1.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//garnet/lib/rust/files_async",
    "//garnet/lib/rust/io_util",
    "//sdk/fidl/fuchsia.inspect:fuchsia.inspect-rustc",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.pkg:fuchsia.pkg-rustc",
    "//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
    "//src/lib/diagnostics/hierarchy/rust",
    "//src/lib/diagnostics/reader/rust",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-hyper",
    "//src/lib/fuchsia-runtime",
    "//src/lib/fuchsia-url",
    "//src/lib/http-sse:http_sse",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/lib/fidl-fuchsia-pkg-ext",
    "//src/sys/pkg/bin/pkg-local-mirror:lib",
    "//src/sys/pkg/lib/blobfs",
    "//src/sys/pkg/lib/far/rust:fuchsia-archive",
    "//src/sys/pkg/lib/fuchsia-hash",
    "//src/sys/pkg/lib/fuchsia-merkle",
    "//src/sys/pkg/lib/fuchsia-pkg",
    "//src/sys/pkg/lib/system-image",
    "//src/sys/pkg/lib/update-package",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:glob",
    "//third_party/rust_crates:hex",
    "//third_party/rust_crates:http",
    "//third_party/rust_crates:hyper",
    "//third_party/rust_crates:itertools",
    "//third_party/rust_crates:maplit",
    "//third_party/rust_crates:maybe-owned",
    "//third_party/rust_crates:openat",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:rustls",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:tokio",
    "//third_party/rust_crates:tokio-rustls",
    "//third_party/rust_crates:walkdir",
  ]

  test_deps = [ "//third_party/rust_crates:matches" ]

  sources = [
    "src/blobfs.rs",
    "src/fake_pkg_local_mirror.rs",
    "src/inspect.rs",
    "src/lib.rs",
    "src/package.rs",
    "src/process.rs",
    "src/repo.rs",
    "src/serve.rs",
    "src/serve/responder.rs",
    "src/system_image.rs",
    "src/update_package.rs",
  ]

  inputs = [
    "certs/server.rsa",
    "certs/server.certchain",
  ]
}

fuchsia_component("fuchsia-pkg-testing-tests-component") {
  testonly = true
  component_name = "fuchsia-pkg-testing-tests"
  manifest = "meta/fuchsia-pkg-testing-tests.cmx"
  deps = [ ":fuchsia-pkg-testing_test" ]
}

rustc_test("pkgfs_test") {
  name = "pkgfs_test"
  edition = "2018"
  source_root = "tests/lib.rs"
  deps = [
    ":fuchsia-pkg-testing",
    "//garnet/lib/rust/io_util",
    "//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",
    "//src/sys/pkg/lib/fuchsia-merkle",
    "//src/sys/pkg/lib/fuchsia-pkg",
    "//src/sys/pkg/lib/pkgfs",
    "//src/sys/pkg/testing/blobfs-ramdisk",
    "//src/sys/pkg/testing/pkgfs-ramdisk",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:matches",
    "//third_party/rust_crates:openat",
    "//third_party/rust_crates:serde_json",
  ]

  sources = [
    "tests/gc_test.rs",
    "tests/get_buffer.rs",
    "tests/lib.rs",
    "tests/pkgfs_test.rs",
  ]
}

fuchsia_component("pkgfs-test-component") {
  testonly = true
  component_name = "pkgfs-test"
  manifest = "meta/pkgfs-test.cmx"
  deps = [ ":pkgfs_test" ]
}

fuchsia_test_package("fuchsia-pkg-testing-tests") {
  test_components = [
    ":fuchsia-pkg-testing-tests-component",
    ":pkgfs-test-component",
  ]
  deps = [
    "//src/storage/bin/blobfs",
    "//src/sys/pkg/bin/pkgfs:pkgsvr",
    "//src/sys/pkg/bin/pm:pm_bin",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    ":fuchsia-pkg-testing-tests",
    "//src/lib/storage/ramdevice_client:ramdisk-isolated-devmgr",
    "//src/sys/pkg/bin/pm:pm",
  ]
}
