# 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_library.gni")
import("//build/testing/environments.gni")

rustc_library("isolated-swd") {
  version = "0.1.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.boot:fuchsia.boot-rustc",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//sdk/fidl/fuchsia.net.name:fuchsia.net.name-rustc",
    "//sdk/fidl/fuchsia.paver:fuchsia.paver-rustc",
    "//sdk/fidl/fuchsia.pkg:fuchsia.pkg-rustc",
    "//sdk/fidl/fuchsia.posix.socket:fuchsia.posix.socket-rustc",
    "//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider-rustc",
    "//sdk/fidl/fuchsia.update:fuchsia.update-rustc",
    "//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/scoped_task",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/lib/fidl-fuchsia-pkg-ext",
    "//src/sys/pkg/fidl/fuchsia.update.installer:fuchsia.update.installer-rustc",
    "//src/sys/pkg/lib/fidl-fuchsia-update-installer-ext",
    "//src/sys/pkg/lib/fuchsia-merkle",
    "//src/sys/pkg/lib/fuchsia-pkg-testing",
    "//src/sys/pkg/lib/omaha-client",
    "//src/sys/pkg/lib/pkgfs",
    "//src/sys/pkg/lib/version",
    "//src/sys/pkg/testing/blobfs-ramdisk",
    "//src/sys/pkg/testing/mock-paver",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:assert_matches",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:hyper",
    "//third_party/rust_crates:hyper-rustls",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [
    "//sdk/fidl/fuchsia.space:fuchsia.space-rustc",
    "//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
    "//third_party/rust_crates:hyper",
    "//third_party/rust_crates:openat",
  ]

  sources = [
    "src/cache.rs",
    "src/lib.rs",
    "src/omaha.rs",
    "src/omaha/http_request.rs",
    "src/omaha/install_plan.rs",
    "src/omaha/installer.rs",
    "src/omaha/timer.rs",
    "src/pkgfs.rs",
    "src/resolver.rs",
    "src/updater.rs",
  ]
}

fuchsia_component("isolated-swd-tests-component") {
  testonly = true
  component_name = "isolated-swd-tests"
  manifest = "meta/isolated-swd-tests.cmx"
  deps = [ ":isolated-swd_test" ]
}

isolated_swd_components = [
  "//src/sys/pkg/bin/pkg-cache:isolated",
  "//src/sys/pkg/bin/pkg-resolver:isolated",
  "//src/sys/pkg/bin/system-updater:isolated",
]

fuchsia_test_package("isolated-swd-tests") {
  test_components = [ ":isolated-swd-tests-component" ]

  deps = [
    "//src/connectivity/network/dns:component-legacy",
    "//src/connectivity/network/netstack:component-legacy",
    "//src/storage/bin/blobfs",
    "//src/sys/pkg/bin/pkgfs:pkgsvr_bin",
    "//src/sys/pkg/bin/pm:pm_bin",
    "//src/sys/pkg/lib/fuchsia-pkg-testing/certs",
    "//src/sys/pkg/tests/pkg-resolver:empty-repo",
  ]
  deps += isolated_swd_components

  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
}

fuchsia_package("isolated-swd-components") {
  deps = isolated_swd_components
}

group("tests") {
  testonly = true
  public_deps = [
    ":isolated-swd-tests",
    "//src/lib/storage/ramdevice_client:ramdisk-isolated-devmgr",
  ]
}
