# 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("wlan") {
  testonly = true
  deps = [
    ":bin",
    "drivers",
  ]
}

group("bin") {
  testonly = true
  deps = [
    "//src/connectivity/wlan/wlancfg",
    "//src/connectivity/wlan/wlanstack",
  ]
}

group("tests") {
  testonly = true

  public_deps = [
    "//src/connectivity/wlan/drivers/third_party/broadcom/brcmfmac/test:brcmfmac_test",
    "//src/connectivity/wlan/drivers/third_party/intel/iwlwifi/test:iwlwifi_test",
    "//src/connectivity/wlan/drivers/wlan:wlan_drivers_tests",
    "//src/connectivity/wlan/drivers/wlanif/test:wlanif_unittest",
    "//src/connectivity/wlan/lib/bitfield/wlan-bitfield-tests",
    "//src/connectivity/wlan/lib/common/rust:wlan-common-tests",
    "//src/connectivity/wlan/lib/eapol:eapol-tests",
    "//src/connectivity/wlan/lib/inspect:wlan-inspect-tests",
    "//src/connectivity/wlan/lib/mlme/cpp/tests:wlan_tests",
    "//src/connectivity/wlan/lib/mlme/rust:wlan-mlme-tests",
    "//src/connectivity/wlan/lib/rsn:wlan-rsn-tests",
    "//src/connectivity/wlan/lib/sme:wlan-sme-tests",
    "//src/connectivity/wlan/lib/wep_deprecated:wep-deprecated-tests",
    "//src/connectivity/wlan/testing/ap-smoke-test:wlan-ap-smoke-test",
    "//src/connectivity/wlan/testing/client-smoke-test:wlan-smoke-test",
    "//src/connectivity/wlan/testing/client-stress-test:wlan-stress-test",
    "//src/connectivity/wlan/testing/hw-sim:wlan-hw-sim",
    "//src/connectivity/wlan/testing/hw-sim:wlan-hw-sim-tests",
    "//src/connectivity/wlan/testing/wlantap-client",
    "//src/connectivity/wlan/testing/wlantap-driver:wlantap",
    "//src/connectivity/wlan/tools/wlantool:wlan-tests",
    "//src/connectivity/wlan/wlancfg:wlancfg-tests",
    "//src/connectivity/wlan/wlanstack:wlanstack2-tests",
  ]
}

group("tools") {
  public_deps = [
    "//src/connectivity/wlan/tools/wlantool:wlan",
  ]
}
