# 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("management") {
  testonly = true
  deps = [
    ":tests",
    "network_manager",
    "network_manager_cli",
    "reachability",
  ]
}

# TODO(49379): Remove when updating the network_config_* rules
# below.
group("netcfg") {
  deps = [
    "//src/connectivity/network/netcfg",
    "//src/connectivity/network/netcfg:config",
  ]
}

group("network_config_default") {
  # TODO(49379): Switch to the equivalent Network Manager config
  # once we've migrated off of netcfg and onto Network Manager.
  deps = [
    ":netcfg",
    "//src/connectivity/network/netcfg:config_default",
  ]
}

group("network_config_no_ssh_over_wlan") {
  # TODO(49379): Switch to the equivalent Network Manager config
  # once we've migrated off of netcfg and onto Network Manager.
  deps = [
    ":netcfg",
    "//src/connectivity/network/netcfg:config_no_ssh_over_wlan",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "reachability:tests",
    "tests/network_manager_integration_tests:tests",
  ]
}
