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

group("tests") {
  testonly = true

  deps = [
    "attributed_logging:attributed-logging-test",
    "base_resolver_test",
    "collections:collections_integration_test",
    "component-time:tests",
    "destruction:destruction_integration_test",
    "diagnostics:tests",
    "elf_runner:tests",
    "events:events_integration_test",
    "hub:hub_integration_test",
    "namespace_capabilities:tests",
    "panic-test:component_manager_panic_test",
    "resolvers:tests",
    "rights:tests",
    "routing:tests",
    "security_policy:tests",
    "shutdown:shutdown_integration_test",
    "storage:storage_integration_test",
    "utc-time:tests",
    "work_scheduler:work_scheduler_integration_test",
  ]
}

rustc_binary("trigger_bin") {
  name = "trigger"
  edition = "2018"
  source_root = "trigger.rs"
  deps = [
    "//examples/components/routing/fidl:echo-rustc",
    "//sdk/fidl/fuchsia.component:fuchsia.component-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/sys/component_manager/tests/fidl:components-rustc",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "trigger.rs" ]
}
