# 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",
    "components",
    "cowsay",
    "criterion_bench",
    "diagnostics",
    "drivers",
    "fidl",
    "fuzzers",
    "hello_world",
    "intl",
    "rust",
    "time",
  ]
}

group("tests") {
  testonly = true
  data_deps = [
    "components:tests",
    "diagnostics:tests",
    "drivers:tests",
    "fidl:tests",
    "fuzzers:tests",
    "hello_world:tests",
    "intl:tests",
    "rust:tests",
  ]
}
