# 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",
    "cobalt",
    "connectivity",
    "developer",
    "experiences",
    "graphics",
    "identity",
    "ledger",
    "lib",
    "media",
    "modular",
    "recovery",
    "speech",
    "storage",
    "sys",
    "testing",
    "ui",
    "virtualization",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "camera:tests",
    "cobalt:tests",
    "connectivity:tests",
    "developer:tests",
    "experiences:tests",
    "fuzzing:tests",
    "graphics:tests",
    "identity:tests",
    "ledger:tests",
    "lib:tests",
    "media:tests",
    "modular:tests",
    "recovery:tests",
    "speech:tests",
    "storage:tests",
    "sys:tests",
    "testing:tests",
    "tests",
    "ui:tests",
    "virtualization:tests",
  ]
}
