Home | History | Annotate | Download | only in docs
      1 # Running WiFi tests
      2 
      3 Most WiFi tests specify `DEPENDENCIES = 'wificell'` in their control file,
      4 which means they require not only an autotest server and a DUT, but also a
      5 special test-enabled Access Point (AP). Additionally, some tests require a
      6 packet capture (pcap) device or a signal attenuator.
      7 
      8 The basics of running a wificell autotest are the same as any other, except
      9 that autotest also needs to know where to find your test AP. For some
     10 configurations, this is sufficient:
     11 
     12 ```bash
     13 # Run a 5HT40 test with DUT at 'my-host' and AP at 'my-host-router'.
     14 test_that my-host network_WiFi_SimpleConnect.wifi_check5HT40
     15 ````
     16 
     17 This works for most of the Chrome OS lab WiFi cells, where we configure DNS to
     18 pair a DUT at address `${HOST}` with its companion AP at an address
     19 `${HOST}-router`. See below for more info on addressing your test AP.
     20 
     21 ## What is a test AP?
     22 
     23 A test AP can come in various forms, but as of this writing, it is typically a
     24 Chrome OS based router / access point such as Whirlwind or Gale, running a
     25 testbed-ap variant of a Chrome OS test image in Developer Mode. We have
     26 previously supported other consumer routers, running OpenWRT. Setting up a test
     27 AP is not in the scope for this document.
     28 
     29 The key purpose of a test AP is to run a variety of [hostapd] instances, such
     30 that we can test our DUTs using different PHY, cipher, etc., configurations.
     31 
     32 In autotest, a test AP is represented by a `LinuxRouter` object, in
     33 [site\_linux\_router].
     34 
     35 ## What suites should I run?
     36 
     37 There are a variety of WiFi-related suites, but developers are commonly
     38 interested in the functionality (`wifi_matfunc`) and performance (`wifi_perf`)
     39 suites.
     40 
     41 ## Configuring DNS entries for test APs
     42 
     43 Autotest assumes that if you have a DUT at address `${HOST}`, then your AP is
     44 at an address `${HOST}-router` (see [dnsname\_mangler]). This is configured
     45 automatically by the lab team for most Chrome OS lab WiFi setups.
     46 
     47 For custom/local testing without modifying your DNS server, one can accomplish
     48 this by adding entries to your `/etc/hosts` file. Alternatively, you can supply
     49 the `router_addr=` arguments to autotest. For example:
     50 
     51 ```bash
     52 # DUT at 'my-host' and AP at 'my-other-router'
     53 test_that --args=router_addr=my-other-router my-host suite:wifi_matfunc
     54 ```
     55 
     56 Also, note that if a pcap device isn't found at `${HOST}-pcap`, then we often
     57 can utilize the test AP to capture packets as well.
     58 
     59 [dnsname\_mangler]: ../server/cros/dnsname_mangler.py
     60 [hostapd]: https://w1.fi/hostapd/
     61 [site\_linux\_router]: ../server/site_linux_router.py
     62