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

# [START example_snippet]
rustc_test("bin") {
  name = "hello_world_integration_test"
  edition = "2018"
  source_root = "src/hello_world_integration_test.rs"

  deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog-listener",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

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

fuchsia_component("hello-world-integration-test-driver") {
  testonly = true
  manifest = "meta/hello-world-integration-test-driver.cml"
  deps = [ ":bin" ]
}

fuchsia_component("hello-world-integration-test-component") {
  component_name = "hello-world-integration-test"
  testonly = true
  manifest = "meta/hello-world-integration-test.cml"
}

fuchsia_test_package("hello-world-integration-test") {
  test_components = [ ":hello-world-integration-test-component" ]
  deps = [
    ":hello-world-integration-test-driver",
    "//examples/components/basic:hello-world",
    "//src/diagnostics/archivist:archivist-for-embedding",
  ]
}
# [END example_snippet]
