# 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",
    "dictionaries:dictionary-examples",
    "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",
    "dictionaries:hermetic_tests",
    "echo:hermetic_tests",
    "realm_builder:hermetic_tests",
    "routing:hermetic_tests",
    "runner:hermetic_tests",
    "services:hermetic_tests",
    "storage:hermetic_tests",
    "subpackages:hermetic_tests",
  ]
}
