Browse Source

tests: SCAN error cases

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 10 years ago
parent
commit
9446f3c253
1 changed files with 12 additions and 2 deletions
  1. 12 2
      tests/hwsim/test_scan.py

+ 12 - 2
tests/hwsim/test_scan.py

@@ -13,7 +13,7 @@ import subprocess
 import hostapd
 from wpasupplicant import WpaSupplicant
 
-def check_scan(dev, params, other_started=False):
+def check_scan(dev, params, other_started=False, test_busy=False):
     if not other_started:
         dev.dump_monitor()
     id = dev.request("SCAN " + params)
@@ -21,6 +21,10 @@ def check_scan(dev, params, other_started=False):
         raise Exception("Failed to start scan")
     id = int(id)
 
+    if test_busy:
+        if "FAIL-BUSY" not in dev.request("SCAN"):
+            raise Exception("SCAN command while already scanning not rejected")
+
     if other_started:
         ev = dev.wait_event(["CTRL-EVENT-SCAN-STARTED"])
         if ev is None:
@@ -39,6 +43,9 @@ def check_scan(dev, params, other_started=False):
         raise Exception("Scan did not start")
     if "id=" + str(id) not in ev:
         raise Exception("Scan id not included in start event")
+    if test_busy:
+        if "FAIL-BUSY" not in dev.request("SCAN"):
+            raise Exception("SCAN command while already scanning not rejected")
 
     ev = dev.wait_event(["CTRL-EVENT-SCAN-RESULTS"])
     if ev is None:
@@ -59,7 +66,7 @@ def test_scan(dev, apdev):
     bssid = apdev[0]['bssid']
 
     logger.info("Full scan")
-    check_scan(dev[0], "use_id=1")
+    check_scan(dev[0], "use_id=1", test_busy=True)
 
     logger.info("Limited channel scan")
     check_scan_retry(dev[0], "freq=2412-2462,5180 use_id=1", bssid)
@@ -358,6 +365,9 @@ def test_scan_hidden(dev, apdev):
     if "test-scan" not in dev[0].request("SCAN_RESULTS"):
         raise Exception("BSS not found in scan")
 
+    if "FAIL" not in dev[0].request("SCAN scan_id=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"):
+        raise Exception("Too many scan_id values accepted")
+
 def test_scan_and_bss_entry_removed(dev, apdev):
     """Last scan result and connect work processing on BSS entry update"""
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "open",