# Copyright 2020 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("network") {
  testonly = true
  deps = [
    "ethernet",
    "fidl_fuchsia_hardware_ethernet_ext",
    "fidl_fuchsia_net_ext",
    "fidl_fuchsia_net_interfaces_ext",
    "fidl_fuchsia_net_name_ext",
    "fidl_fuchsia_net_stack_ext",
    "fidl_fuchsia_netstack_ext",
    "packet",
    "packet-formats",
    "packet-formats-dhcp",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "ethernet:ethernet-tests",
    "fidl_fuchsia_hardware_ethernet_ext:fidl-fuchsia-hardware-ethernet-ext-tests",
    "fidl_fuchsia_net_ext:fidl-fuchsia-net-ext-tests",
    "fidl_fuchsia_net_interfaces_ext:fidl-fuchsia-net-interfaces-ext-tests",
    "fidl_fuchsia_net_name_ext:fidl-fuchsia-net-name-ext-tests",
    "fidl_fuchsia_net_stack_ext:fidl-fuchsia-net-stack-ext-tests",
    "fidl_fuchsia_netstack_ext:fidl-fuchsia-netstack-ext-tests",
    "packet:packet-test",
    "packet-formats:tests",
    "packet-formats-dhcp:tests",
  ]
}
