# Copyright 2021 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.

assert(is_fuchsia, "These targets are only compiled in the fuchsia toolchain.")

group("components") {
  testonly = true
  deps = [
    "config",
    "config_from_parent",
    "echo:echo-example",
    "lifecycle:lifecycle-example",

    # TODO(https://fxbug.dev/299358404): Uncomment once it's possible to build fuchsia
    # and pigweed together in CQ.
    #"pw_rpc",
    "routing:components-routing-example",
    "routing_failed:components-routing-failed-example",
    "runner",
    "services",
    "storage",
  ]
}

group("hermetic_tests") {
  testonly = true
  deps = [
    "config:hermetic_tests",
    "config_from_parent:hermetic_tests",
    "echo:hermetic_tests",
    "realm_builder:hermetic_tests",
    "routing:hermetic_tests",
    "runner:hermetic_tests",
    "services:hermetic_tests",
    "storage:hermetic_tests",
    "subpackages:hermetic_tests",
  ]
}
