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

group("examples") {
  testonly = true
  deps = [
    ":tests",
    "cowsay",
    "criterion_bench",
    "diagnostics",
    "dotmatrix_display",
    "fidl",
    "fortune",
    "fuzzers",
    "hello_world",
    "intl",
    "isolated_cache",
    "rolldice",
    "rust",
    "speech",
    "//examples/components/basic:components-basic-example",
    "//examples/components/basic:tests",
    "//examples/components/routing:components-routing-example",
    "//examples/components/routing_failed:components-routing-failed-example",
  ]
}

group("tests") {
  testonly = true
  data_deps = [
    "diagnostics:tests",
    "drivers/fifo:tests",
    "fidl:tests",
    "fuzzers:tests",
    "hello_world:tests",
    "intl:tests",
    "isolated_cache:tests",
    "rolldice:rolldice-tests",
    "rust:tests",
    "//examples/components/basic:tests",
  ]
}
