From b1f487cb7404457886c67e1b220a0ce73e26156c Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 25 Jun 2015 11:56:51 +0300 Subject: [PATCH] tests: Try heavier SAE groups in sae_groups This changes the sae_groups test case design to try with every group and skip triggering test failure for the heavier ones that are likely to fail in some VM setups under load. This provides more testing coverage by not limiting the test based on lowest common setup. Signed-off-by: Jouni Malinen --- tests/hwsim/test_sae.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/tests/hwsim/test_sae.py b/tests/hwsim/test_sae.py index 451ab034d..01b3a661d 100644 --- a/tests/hwsim/test_sae.py +++ b/tests/hwsim/test_sae.py @@ -127,11 +127,12 @@ def test_sae_groups(dev, apdev): """SAE with all supported groups""" if "SAE" not in dev[0].get_capability("auth_alg"): raise HwsimSkip("SAE not supported") - # This would be the full list of supported groups, but groups 14-16 - # (2048-4096 bit MODP) are a bit too slow on some VMs and can result in - # hitting mac80211 authentication timeout, so skip them for now. - #sae_groups = [ 19, 25, 26, 20, 21, 2, 5, 14, 15, 16, 22, 23, 24 ] - sae_groups = [ 19, 25, 26, 20, 21, 2, 5, 22, 23, 24 ] + # This is the full list of supported groups, but groups 14-16 (2048-4096 bit + # MODP) and group 21 (521-bit random ECP group) are a bit too slow on some + # VMs and can result in hitting the mac80211 authentication timeout, so + # allow them to fail and just report such failures in the debug log. + sae_groups = [ 19, 25, 26, 20, 21, 2, 5, 14, 15, 16, 22, 23, 24 ] + heavy_groups = [ 14, 15, 16 ] groups = [str(g) for g in sae_groups] params = hostapd.wpa2_params(ssid="test-sae-groups", passphrase="12345678") @@ -143,10 +144,23 @@ def test_sae_groups(dev, apdev): logger.info("Testing SAE group " + g) dev[0].request("SET sae_groups " + g) id = dev[0].connect("test-sae-groups", psk="12345678", key_mgmt="SAE", - scan_freq="2412") + scan_freq="2412", wait_connect=False) + if int(g) in heavy_groups: + ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=5) + if ev is None: + logger.info("No connection with heavy SAE group %s did not connect - likely hitting timeout in mac80211" % g) + dev[0].remove_network(id) + time.sleep(0.1) + dev[0].dump_monitor() + continue + logger.info("Connection with heavy SAE group " + g) + else: + dev[0].wait_connected(timeout=10, error="Connection timed out with group " + g) if dev[0].get_status_field('sae_group') != g: raise Exception("Expected SAE group not used") dev[0].remove_network(id) + dev[0].wait_disconnected() + dev[0].dump_monitor() def test_sae_group_nego(dev, apdev): """SAE group negotiation""" -- 2.39.2