# 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("connectivity") {
  testonly = true
  deps = [ ":connectivity_no_e2e" ]
}

group("connectivity_no_e2e") {
  testonly = true
  assert_no_deps = e2e_test_libs

  deps = [
    ":tests_no_e2e",
    "bluetooth",
    "location",
    "lowpan",
    "overnet",
    "ppp",
    "weave",
    "wlan",
  ]
}

group("tools") {
  testonly = true
  deps = [
    "lowpan/tools",
    "network/bundles:tools",
    "network/mdns/bundles:utils",
    "network/net-cli",
    "wlan:tools",
  ]
}

group("tests_no_e2e") {
  testonly = true
  assert_no_deps = e2e_test_libs

  deps = [
    "bluetooth:tests",
    "ethernet:tests",
    "lib:tests",
    "location:tests",
    "lowpan:tests",
    "network:tests",
    "overnet:tests_no_e2e",
    "policy:tests",
    "ppp:tests",
    "telephony:tests",
    "weave:tests",
    "wlan:tests",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":tests_no_e2e" ]
}
