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

group("tests") {
  testonly = true
  deps = [ ":recovery_integration_test" ]
}

rustc_test("bin") {
  name = "recovery_integration_test"
  edition = "2021"

  deps = [
    "//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-runtime",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]

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

fuchsia_test_component("recovery_integration_test_component") {
  component_name = "recovery_integration_test"
  manifest = "meta/recovery_integration_test.cmx"
  deps = [ ":bin" ]
}

fuchsia_test_package("recovery_integration_test") {
  test_components = [ ":recovery_integration_test_component" ]
  test_specs = {
    environments = [ nuc_env ]
  }
}
