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

group("tests") {
  testonly = true

  data_deps = [
    "cobalt:tests",
    "connectivity:tests",
    "developer:tests",
    "identity:tests",
    "ledger:tests",
    "lib:tests",
    "media:tests",
    "modular:tests",
    "recovery:tests",
    "speech:tests",
    "testing:tests",
  ]
}
