# 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("src") {
  testonly = true
  deps = [
    ":tests",
    "camera",
    "cast",
    "chromium",
    "cobalt",
    "connectivity",
    "dart",
    "developer",
    "devices",
    "diagnostics",
    "experiences",
    "factory",
    "flutter",
    "fonts",
    "graphics",
    "identity",
    "intl",
    "ledger",
    "lib",
    "media",
    "modular",
    "power",
    "recovery",
    "security",
    "session",
    "speech",
    "storage",
    "sys",
    "testing",
    "ui",
    "virtualization",
  ]
}

group("tests") {
  testonly = true

  deps = [
    ":zircon_host_tests",
    "bringup:tests",
    "camera:tests",
    "chromium:tests",
    "cobalt:tests",
    "connectivity:tests",
    "developer:tests",
    "devices:tests",
    "diagnostics:tests",
    "experiences:tests",
    "factory:tests",
    "fonts:tests",
    "graphics:tests",
    "hwinfo:tests",
    "identity:tests",
    "intl:tests",
    "ledger:tests",
    "lib:tests",
    "media:tests",
    "modular:tests",
    "power:tests",
    "recovery:tests",
    "security:tests",
    "session:tests",
    "speech:tests",
    "storage:tests",
    "sys:tests",
    "testing:tests",
    "tests",
    "ui:tests",
    "virtualization:tests",
  ]
}

group("zircon_host_tests") {
  testonly = true
  deps = [ "//build/unification/tests:host" ]
}

group("host_tests") {
  testonly = true
  public_deps = [ "//src/ledger:host_tests" ]
}
