# 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:fuchsia.net-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:futures",
    "//third_party/rust_crates:hyper",
    "//third_party/rust_crates:hyper-rustls",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:matches",
    "//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/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",
  ]
}
