Browse Source

tests: Increase scan_fail coverage

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 8 years ago
parent
commit
0b0e4792d3
1 changed files with 28 additions and 0 deletions
  1. 28 0
      tests/hwsim/test_scan.py

+ 28 - 0
tests/hwsim/test_scan.py

@@ -1014,6 +1014,16 @@ def test_scan_fail(dev, apdev):
             raise Exception("Did not see scan failure event")
     dev[0].dump_monitor()
 
+    for i in range(1, 5):
+        with alloc_fail(dev[0], i,
+                        "wpa_scan_clone_params;wpa_supplicant_trigger_scan"):
+            if "OK" not in dev[0].request("SCAN ssid 112233 freq=2412"):
+                raise Exception("SCAN failed")
+            ev = dev[0].wait_event(["CTRL-EVENT-SCAN-FAILED"], timeout=5)
+            if ev is None:
+                raise Exception("Did not see scan failure event")
+        dev[0].dump_monitor()
+
     with alloc_fail(dev[0], 1, "radio_add_work;wpa_supplicant_trigger_scan"):
         if "OK" not in dev[0].request("SCAN freq=2412"):
             raise Exception("SCAN failed")
@@ -1049,6 +1059,24 @@ def test_scan_fail(dev, apdev):
         wait_fail_trigger(dev[0], "GET_ALLOC_FAIL")
     dev[0].dump_monitor()
 
+    try:
+        if "OK" not in dev[0].request("SET setband 2G"):
+            raise Exception("SET setband failed")
+        with alloc_fail(dev[0], 1, "=wpa_setband_scan_freqs_list"):
+            # While the frequency list cannot be created due to memory
+            # allocation failure, this scan is expected to be completed without
+            # frequency filtering.
+            if "OK" not in dev[0].request("SCAN"):
+                raise Exception("SCAN failed")
+            wait_fail_trigger(dev[0], "GET_ALLOC_FAIL")
+            dev[0].request("ABORT_SCAN")
+            ev = dev[0].wait_event(["CTRL-EVENT-SCAN-RESULTS"])
+            if ev is None:
+                raise Exception("Scan did not complete")
+    finally:
+        dev[0].request("SET setband AUTO")
+    dev[0].dump_monitor()
+
     wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
     wpas.interface_add("wlan5")
     wpas.request("SET preassoc_mac_addr 1")