From d7a99700de015574d9a69f693d2f8b7fa0726716 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 3 Jan 2014 14:34:59 +0200 Subject: [PATCH] tests: Clean up and optimize gas_concurrent_scan and _connect No need to run a full scan as the first step since it only needs to find the AP from a known channel for the GAS operation. Signed-hostap: Jouni Malinen --- tests/hwsim/test_gas.py | 11 +++++++---- tests/hwsim/wpasupplicant.py | 9 ++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/tests/hwsim/test_gas.py b/tests/hwsim/test_gas.py index 24e2bcd76..db30c815d 100644 --- a/tests/hwsim/test_gas.py +++ b/tests/hwsim/test_gas.py @@ -2,6 +2,7 @@ # # GAS tests # Copyright (c) 2013, Qualcomm Atheros, Inc. +# Copyright (c) 2013-2014, Jouni Malinen # # This software may be distributed under the terms of the BSD license. # See README for more details. @@ -103,7 +104,8 @@ def test_gas_concurrent_scan(dev, apdev): params['hessid'] = bssid hostapd.add_ap(apdev[0]['ifname'], params) - dev[0].scan() + # get BSS entry available to allow GAS query + dev[0].scan(freq="2412") logger.info("Request concurrent operations") req = dev[0].request("GAS_REQUEST " + bssid + " 00 000102000101") @@ -112,7 +114,7 @@ def test_gas_concurrent_scan(dev, apdev): req = dev[0].request("GAS_REQUEST " + bssid + " 00 000102000801") if "FAIL" in req: raise Exception("GAS query request rejected") - dev[0].request("SCAN") + dev[0].scan(no_wait=True) req = dev[0].request("GAS_REQUEST " + bssid + " 00 000102000201") if "FAIL" in req: raise Exception("GAS query request rejected") @@ -140,13 +142,14 @@ def test_gas_concurrent_connect(dev, apdev): params['hessid'] = bssid hostapd.add_ap(apdev[0]['ifname'], params) - dev[0].scan() + dev[0].scan(freq="2412") logger.debug("Start concurrent connect and GAS request") dev[0].connect("test-gas", key_mgmt="WPA-EAP", eap="TTLS", identity="DOMAIN\mschapv2 user", anonymous_identity="ttls", password="password", phase2="auth=MSCHAPV2", - ca_cert="auth_serv/ca.pem", wait_connect=False) + ca_cert="auth_serv/ca.pem", wait_connect=False, + scan_freq="2412") req = dev[0].request("GAS_REQUEST " + bssid + " 00 000102000101") if "FAIL" in req: raise Exception("GAS query request rejected") diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index fb3e2daf0..3823ad21f 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -1,7 +1,7 @@ #!/usr/bin/python # # Python class for controlling wpa_supplicant -# Copyright (c) 2013, Jouni Malinen +# Copyright (c) 2013-2014, Jouni Malinen # # This software may be distributed under the terms of the BSD license. # See README for more details. @@ -627,16 +627,19 @@ class WpaSupplicant: self.select_network(id) return id - def scan(self, type=None, freq=None): + def scan(self, type=None, freq=None, no_wait=False): if type: cmd = "SCAN TYPE=" + type else: cmd = "SCAN" if freq: cmd = cmd + " freq=" + freq - self.dump_monitor() + if not no_wait: + self.dump_monitor() if not "OK" in self.request(cmd): raise Exception("Failed to trigger scan") + if no_wait: + return ev = self.wait_event(["CTRL-EVENT-SCAN-RESULTS"], 15) if ev is None: raise Exception("Scan timed out")