# 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",
    "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/testing:test_utils_lib",
    "//src/sys/component_manager/tests/fidl:components-rustc",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "trigger.rs" ]
}
