]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: WPA2-PSK AP and no random numbers available
authorJouni Malinen <j@w1.fi>
Sun, 28 Jun 2015 18:41:56 +0000 (21:41 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 29 Jun 2015 20:23:56 +0000 (23:23 +0300)
Signed-off-by: Jouni Malinen <j@w1.fi>
tests/hwsim/test_ap_psk.py
tests/hwsim/utils.py

index 12d7805364e16c8c0b22fb32eee9109e17f25712..461d5969e292efc31ecf1c91cbc8b3ba4043a14a 100644 (file)
@@ -17,7 +17,7 @@ import subprocess
 import time
 
 import hostapd
-from utils import HwsimSkip
+from utils import HwsimSkip, fail_test
 import hwsim_utils
 from wpasupplicant import WpaSupplicant
 
@@ -1971,3 +1971,21 @@ def test_ap_wpa_ie_parsing(dev, apdev):
             dev[0].request("DISCONNECT")
         finally:
             dev[0].request("VENDOR_ELEM_REMOVE 13 *")
+
+def test_ap_wpa2_psk_no_random(dev, apdev):
+    """WPA2-PSK AP and no random numbers available"""
+    ssid = "test-wpa2-psk"
+    passphrase = 'qwertyuiop'
+    psk = '602e323e077bc63bd80307ef4745b754b0ae0a925c2638ecd13a794b9527b9e6'
+    params = hostapd.wpa2_params(ssid=ssid)
+    params['wpa_psk'] = psk
+    hapd = hostapd.add_ap(apdev[0]['ifname'], params)
+    with fail_test(hapd, 1, "wpa_gmk_to_gtk"):
+        id = dev[0].connect(ssid, raw_psk=psk, scan_freq="2412",
+                            wait_connect=False)
+        ev = dev[0].wait_event(["CTRL-EVENT-DISCONNECTED"], timeout=15)
+        if ev is None:
+            raise Exception("Disconnection event not reported")
+        dev[0].request("DISCONNECT")
+        dev[0].select_network(id, freq=2412)
+        dev[0].wait_connected()
index 2769e192c374f852983c893ab8ae3b739dd0f30b..580c65e32eafab5cc5aa7b788d449217fc35198c 100644 (file)
@@ -36,6 +36,20 @@ class alloc_fail(object):
             if self._dev.request("GET_ALLOC_FAIL") != "0:%s" % self._funcs:
                 raise Exception("Allocation failure did not trigger")
 
+class fail_test(object):
+    def __init__(self, dev, count, funcs):
+        self._dev = dev
+        self._count = count
+        self._funcs = funcs
+    def __enter__(self):
+        cmd = "TEST_FAIL %d:%s" % (self._count, self._funcs)
+        if "OK" not in self._dev.request(cmd):
+            raise HwsimSkip("TEST_FAIL not supported")
+    def __exit__(self, type, value, traceback):
+        if type is None:
+            if self._dev.request("GET_FAIL") != "0:%s" % self._funcs:
+                raise Exception("Test failure did not trigger")
+
 def require_under_vm():
     with open('/proc/1/cmdline', 'r') as f:
         cmd = f.read()