# 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_test.gni")

rustc_test("driver") {
  name = "usb_system_update_checker_integration_test"
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//sdk/fidl/fuchsia.pkg:fuchsia.pkg-rustc",
    "//sdk/fidl/fuchsia.update.usb:fuchsia.update.usb-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-url",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/pkg/fidl/fuchsia.update.installer:fuchsia.update.installer-rustc",
    "//src/sys/pkg/lib/fuchsia-pkg-testing",
    "//src/sys/pkg/lib/isolated-swd",
    "//src/sys/pkg/lib/update-package",
    "//src/sys/pkg/lib/version",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
  ]

  sources = [ "src/lib.rs" ]
}

fuchsia_component("usb-system-update-checker-integration-test") {
  testonly = true
  manifest = "meta/usb-system-update-checker-integration-test.cmx"
  deps = [ ":driver" ]
}

fuchsia_test_package("usb-system-update-checker-integration-tests") {
  test_components = [ ":usb-system-update-checker-integration-test" ]

  deps = [
    "//src/storage/bin/blobfs",
    "//src/sys/pkg/bin/pkg-cache:isolated",
    "//src/sys/pkg/bin/pkg-resolver:isolated",
    "//src/sys/pkg/bin/pkgfs:pkgsvr_bin",
    "//src/sys/pkg/bin/pm:pm_bin",
    "//src/sys/pkg/bin/usb-system-update-checker:isolated",
    "//src/sys/pkg/lib/fuchsia-pkg-testing/certs",
    "//src/sys/pkg/tests/pkg-resolver:empty-repo",
  ]

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

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