# 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:linux_runner",
    "//garnet/packages/experimental:network_settings_server",
    "//garnet/packages/experimental:sys",
  ]
}

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/bin/driver_manager",
    "//src/sys/component_manager:component-manager",
  ]
}

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