From: Jouni Malinen Date: Fri, 4 Jan 2019 21:19:30 +0000 (+0200) Subject: tests: Split ap_ft_oom into separate test cases X-Git-Tag: hostap_2_8~579 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=63a7683b2d64156cc9409515483cc2f58d5d5ddc;p=thirdparty%2Fhostap.git tests: Split ap_ft_oom into separate test cases ap_ft_oom seemed to depend on undesired wpa_supplicant behavior of trying to do FT protocol even without being ready for reassociation. This is going to be fixed in wpa_supplicant which would make this test case fail, so split it into separate test cases for each failure item to be able to avoid incorrect test failures. Signed-off-by: Jouni Malinen --- diff --git a/tests/hwsim/test_ap_ft.py b/tests/hwsim/test_ap_ft.py index 0250af5d7..c6a187124 100644 --- a/tests/hwsim/test_ap_ft.py +++ b/tests/hwsim/test_ap_ft.py @@ -1389,8 +1389,7 @@ def test_ap_ft_gcmp_256(dev, apdev): run_roams(dev[0], apdev, hapd0, hapd1, ssid, passphrase, pairwise_cipher="GCMP-256", group_cipher="GCMP-256") -def test_ap_ft_oom(dev, apdev): - """WPA2-PSK-FT and OOM""" +def setup_ap_ft_oom(dev, apdev): skip_with_fips(dev[0]) ssid = "test-ft" passphrase="12345678" @@ -1408,13 +1407,32 @@ def test_ap_ft_oom(dev, apdev): dst = apdev[0]['bssid'] dev[0].scan_for_bss(dst, freq="2412") + + return dst + +def test_ap_ft_oom(dev, apdev): + """WPA2-PSK-FT and OOM""" + dst = setup_ap_ft_oom(dev, apdev) with alloc_fail(dev[0], 1, "wpa_ft_gen_req_ies"): dev[0].roam(dst) + +def test_ap_ft_oom2(dev, apdev): + """WPA2-PSK-FT and OOM (2)""" + dst = setup_ap_ft_oom(dev, apdev) with fail_test(dev[0], 1, "wpa_ft_mic"): - dev[0].roam(dst, fail_test=True) + dev[0].roam(dst, fail_test=True, assoc_reject_ok=True) + +def test_ap_ft_oom3(dev, apdev): + """WPA2-PSK-FT and OOM (3)""" + dst = setup_ap_ft_oom(dev, apdev) with fail_test(dev[0], 1, "os_get_random;wpa_ft_prepare_auth_request"): - dev[0].roam(dst, fail_test=True) + dev[0].roam(dst) +def test_ap_ft_oom4(dev, apdev): + """WPA2-PSK-FT and OOM (4)""" + ssid = "test-ft" + passphrase="12345678" + dst = setup_ap_ft_oom(dev, apdev) dev[0].request("REMOVE_NETWORK all") with alloc_fail(dev[0], 1, "=sme_update_ft_ies"): dev[0].connect(ssid, psk=passphrase, key_mgmt="FT-PSK", proto="WPA2", diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index f06d52a1b..1698fca7a 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -1106,13 +1106,17 @@ class WpaSupplicant: if len(res.splitlines()) > 1: logger.info("flush_scan_cache: Could not clear all BSS entries. These remain:\n" + res) - def roam(self, bssid, fail_test=False): + def roam(self, bssid, fail_test=False, assoc_reject_ok=False): self.dump_monitor() if "OK" not in self.request("ROAM " + bssid): raise Exception("ROAM failed") if fail_test: - ev = self.wait_event(["CTRL-EVENT-CONNECTED"], timeout=1) - if ev is not None: + if assoc_reject_ok: + ev = self.wait_event(["CTRL-EVENT-CONNECTED", + "CTRL-EVENT-ASSOC-REJECT"], timeout=1) + else: + ev = self.wait_event(["CTRL-EVENT-CONNECTED"], timeout=1) + if ev is not None and "CTRL-EVENT-ASSOC-REJECT" not in ev: raise Exception("Unexpected connection") self.dump_monitor() return