# 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.
#
# WARNING: This file was machine-generated from previous json files and
# will eventually be deleted.

group("all") {
  testonly = true
  public_deps = [
    "//garnet/packages/experimental:kms",
    "//garnet/packages/experimental:linux_runner",
    "//garnet/packages/experimental:network_settings_server",
    "//garnet/packages/experimental:sys",
    "//garnet/packages/experimental:tennis",
  ]
}

group("termina_guest") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:guest_runner",
    "//src/virtualization/packages/termina_guest",
  ]
}

group("network_settings_server") {
  testonly = true
  public_deps = [ "//garnet/bin/network_settings_server" ]
}

group("sys") {
  testonly = true
  public_deps = [
    "//src/devices/driver_manager",
    "//src/sys/component_manager",
    "//src/sys/dash",
  ]
}

group("linux_runner") {
  testonly = true
  public_deps = [ "//src/virtualization/packages/biscotti_guest/linux_runner" ]
}

group("kms") {
  testonly = true
  public_deps = [ "//garnet/bin/kms:kms" ]
}

group("tennis") {
  testonly = true
  public_deps = [
    "//garnet/bin/tennis:tennis_service",
    "//garnet/bin/tennis:tennis_sysmgr_config",
    "//garnet/bin/tennis:tennis_viewer",
    "//garnet/bin/tennis/bots/example_ai:tennis_example_ai",
    "//garnet/bin/tennis/bots/manual_player:tennis_manual_player",
  ]
}
