# 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("//sdk/cts/build/cts.gni")

group("tests") {
  testonly = true

  deps = [
    "attributed_logging:attributed-logging-test",
    "base_resolver_test",
    "binder:tests",
    "bootfs:tests",
    "collections:collections_integration_test",
    "component-time:tests",
    "crash_introspect:tests",
    "destruction:destruction_integration_test",
    "diagnostics:tests",
    "elf_runner:tests",
    "events:events_integration_test",
    "hub:hub_integration_test",
    "lifecycle_controller:tests",
    "namespace_capabilities:tests",
    "panic-test:component_manager_panic_test",
    "reboot_on_terminate:tests",
    "resolvers:tests",
    "rights:tests",
    "routing:tests",
    "security_policy:tests",
    "services:tests",
    "shutdown:shutdown_integration_test",
    "storage:storage_integration_test",
    "structured_config:tests",
    "utc-time:tests",
  ]

  # TODO(https://fxbug.dev/99342): Fix realm_integration_test in coverage and
  # re-enable.
  if (!is_coverage) {
    deps += [ "realm:realm_integration_test" ]
  }
}

cts_rustc_binary("trigger_bin") {
  testonly = true
  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" ]
}
