# 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",
    "fidl:tests",
    "fuzzers:tests",
    "hello_world:tests",
    "intl:tests",
    "isolated_cache:tests",
    "rolldice:rolldice-tests",
    "rust:tests",
    "//examples/components/basic:tests",
  ]
}
