From ae3ad3284aca2a91cdcf18e233c97de82f826f87 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 31 Mar 2013 16:16:37 +0300 Subject: [PATCH] tests: Pass AP devices to test cases This removes hardcoded assumptions about AP interfaces from test_*.py. Signed-hostap: Jouni Malinen --- tests/hwsim/run-ap-tests.py | 27 +++++--- tests/hwsim/test_ap_pmf.py | 91 ++++++++++++++------------ tests/hwsim/test_ap_roam.py | 37 +++++------ tests/hwsim/test_ap_tdls.py | 127 ++++++++++++++++++------------------ tests/hwsim/test_ap_wps.py | 63 +++++++++--------- 5 files changed, 177 insertions(+), 168 deletions(-) diff --git a/tests/hwsim/run-ap-tests.py b/tests/hwsim/run-ap-tests.py index 428e4ec92..b3f02fce4 100755 --- a/tests/hwsim/run-ap-tests.py +++ b/tests/hwsim/run-ap-tests.py @@ -16,12 +16,12 @@ import logging from wpasupplicant import WpaSupplicant from hostapd import HostapdGlobal -def reset_devs(dev, hapd_ifaces): - for d in dev: - d.reset() - hapd = HostapdGlobal() - for h in hapd_ifaces: - hapd.remove(h) +def reset_devs(dev, apdev): + for d in dev: + d.reset() + hapd = HostapdGlobal() + for ap in apdev: + hapd.remove(ap['ifname']) def main(): idx = 1 @@ -42,7 +42,9 @@ def main(): dev0 = WpaSupplicant('wlan0') dev1 = WpaSupplicant('wlan1') dev = [ dev0, dev1 ] - hapd_ifaces = [ 'wlan2', 'wlan3' ] + apdev = [ ] + apdev.append({"ifname": 'wlan2', "bssid": "02:00:00:00:02:00"}) + apdev.append({"ifname": 'wlan3', "bssid": "02:00:00:00:03:00"}) for d in dev: if not d.ping(): @@ -50,6 +52,8 @@ def main(): return d.reset() print "DEV: " + d.ifname + ": " + d.p2p_dev_addr() + for ap in apdev: + print "APDEV: " + ap['ifname'] tests = [] for t in os.listdir("."): @@ -69,14 +73,17 @@ def main(): if test_filter: if test_filter != t.__name__: continue - reset_devs(dev, hapd_ifaces) + reset_devs(dev, apdev) print "START " + t.__name__ if t.__doc__: print "Test: " + t.__doc__ for d in dev: d.request("NOTE TEST-START " + t.__name__) try: - t(dev) + if t.func_code.co_argcount > 1: + t(dev, apdev) + else: + t(dev) passed.append(t.__name__) print "PASS " + t.__name__ except Exception, e: @@ -87,7 +94,7 @@ def main(): d.request("NOTE TEST-STOP " + t.__name__) if not test_filter: - reset_devs(dev, hapd_ifaces) + reset_devs(dev, apdev) print "passed tests: " + str(passed) print "failed tests: " + str(failed) diff --git a/tests/hwsim/test_ap_pmf.py b/tests/hwsim/test_ap_pmf.py index 87247b935..33e023b57 100644 --- a/tests/hwsim/test_ap_pmf.py +++ b/tests/hwsim/test_ap_pmf.py @@ -15,10 +15,7 @@ import hwsim_utils import hostapd from wlantest import Wlantest -ap_ifname = 'wlan2' -bssid = "02:00:00:00:02:00" - -def test_ap_pmf_required(dev): +def test_ap_pmf_required(dev, apdev): """WPA2-PSK AP with PMF required""" ssid = "test-pmf-required" wt = Wlantest() @@ -27,26 +24,28 @@ def test_ap_pmf_required(dev): params = hostapd.wpa2_params(ssid=ssid, passphrase="12345678") params["wpa_key_mgmt"] = "WPA-PSK-SHA256"; params["ieee80211w"] = "2"; - hostapd.add_ap(ap_ifname, params) - dev[0].connect(ssid, psk="12345678", ieee80211w="1", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) - dev[1].connect(ssid, psk="12345678", ieee80211w="2", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[1].ifname, ap_ifname) - hapd = hostapd.Hostapd(ap_ifname) + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk="12345678", ieee80211w="1", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + dev[1].connect(ssid, psk="12345678", ieee80211w="2", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[1].ifname, apdev[0]['ifname']) + hapd = hostapd.Hostapd(apdev[0]['ifname']) hapd.request("SA_QUERY " + dev[0].p2p_interface_addr()) hapd.request("SA_QUERY " + dev[1].p2p_interface_addr()) - wt.require_ap_pmf_mandatory(bssid) - wt.require_sta_pmf(bssid, dev[0].p2p_interface_addr()) - wt.require_sta_pmf_mandatory(bssid, dev[1].p2p_interface_addr()) + wt.require_ap_pmf_mandatory(apdev[0]['bssid']) + wt.require_sta_pmf(apdev[0]['bssid'], dev[0].p2p_interface_addr()) + wt.require_sta_pmf_mandatory(apdev[0]['bssid'], dev[1].p2p_interface_addr()) time.sleep(0.1) - if wt.get_sta_counter("valid_saqueryresp_tx", bssid, + if wt.get_sta_counter("valid_saqueryresp_tx", apdev[0]['bssid'], dev[0].p2p_interface_addr()) < 1: raise Exception("STA did not reply to SA Query") - if wt.get_sta_counter("valid_saqueryresp_tx", bssid, + if wt.get_sta_counter("valid_saqueryresp_tx", apdev[0]['bssid'], dev[1].p2p_interface_addr()) < 1: raise Exception("STA did not reply to SA Query") -def test_ap_pmf_optional(dev): +def test_ap_pmf_optional(dev, apdev): """WPA2-PSK AP with PMF optional""" ssid = "test-pmf-optional" wt = Wlantest() @@ -55,16 +54,18 @@ def test_ap_pmf_optional(dev): params = hostapd.wpa2_params(ssid=ssid, passphrase="12345678") params["wpa_key_mgmt"] = "WPA-PSK"; params["ieee80211w"] = "1"; - hostapd.add_ap(ap_ifname, params) - dev[0].connect(ssid, psk="12345678", ieee80211w="1", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) - dev[1].connect(ssid, psk="12345678", ieee80211w="2", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[1].ifname, ap_ifname) - wt.require_ap_pmf_optional(bssid) - wt.require_sta_pmf(bssid, dev[0].p2p_interface_addr()) - wt.require_sta_pmf_mandatory(bssid, dev[1].p2p_interface_addr()) + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk="12345678", ieee80211w="1", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + dev[1].connect(ssid, psk="12345678", ieee80211w="2", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[1].ifname, apdev[0]['ifname']) + wt.require_ap_pmf_optional(apdev[0]['bssid']) + wt.require_sta_pmf(apdev[0]['bssid'], dev[0].p2p_interface_addr()) + wt.require_sta_pmf_mandatory(apdev[0]['bssid'], dev[1].p2p_interface_addr()) -def test_ap_pmf_optional_2akm(dev): +def test_ap_pmf_optional_2akm(dev, apdev): """WPA2-PSK AP with PMF optional (2 AKMs)""" ssid = "test-pmf-optional-2akm" wt = Wlantest() @@ -73,31 +74,37 @@ def test_ap_pmf_optional_2akm(dev): params = hostapd.wpa2_params(ssid=ssid, passphrase="12345678") params["wpa_key_mgmt"] = "WPA-PSK WPA-PSK-SHA256"; params["ieee80211w"] = "1"; - hostapd.add_ap(ap_ifname, params) - dev[0].connect(ssid, psk="12345678", ieee80211w="1", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) - dev[1].connect(ssid, psk="12345678", ieee80211w="2", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[1].ifname, ap_ifname) - wt.require_ap_pmf_optional(bssid) - wt.require_sta_pmf(bssid, dev[0].p2p_interface_addr()) - wt.require_sta_key_mgmt(bssid, dev[0].p2p_interface_addr(), "PSK-SHA256") - wt.require_sta_pmf_mandatory(bssid, dev[1].p2p_interface_addr()) - wt.require_sta_key_mgmt(bssid, dev[1].p2p_interface_addr(), "PSK-SHA256") + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk="12345678", ieee80211w="1", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + dev[1].connect(ssid, psk="12345678", ieee80211w="2", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[1].ifname, apdev[0]['ifname']) + wt.require_ap_pmf_optional(apdev[0]['bssid']) + wt.require_sta_pmf(apdev[0]['bssid'], dev[0].p2p_interface_addr()) + wt.require_sta_key_mgmt(apdev[0]['bssid'], dev[0].p2p_interface_addr(), + "PSK-SHA256") + wt.require_sta_pmf_mandatory(apdev[0]['bssid'], dev[1].p2p_interface_addr()) + wt.require_sta_key_mgmt(apdev[0]['bssid'], dev[1].p2p_interface_addr(), + "PSK-SHA256") -def test_ap_pmf_negative(dev): +def test_ap_pmf_negative(dev, apdev): """WPA2-PSK AP without PMF (negative test)""" ssid = "test-pmf-negative" wt = Wlantest() wt.flush() wt.add_passphrase("12345678") params = hostapd.wpa2_params(ssid=ssid, passphrase="12345678") - hostapd.add_ap(ap_ifname, params) - dev[0].connect(ssid, psk="12345678", ieee80211w="1", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk="12345678", ieee80211w="1", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) try: - dev[1].connect(ssid, psk="12345678", ieee80211w="2", key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") - hwsim_utils.test_connectivity(dev[1].ifname, ap_ifname) + dev[1].connect(ssid, psk="12345678", ieee80211w="2", + key_mgmt="WPA-PSK WPA-PSK-SHA256", proto="WPA2") + hwsim_utils.test_connectivity(dev[1].ifname, apdev[0]['ifname']) raise Exception("PMF required STA connected to no PMF AP") except Exception, e: logger.debug("Ignore expected exception: " + str(e)) - wt.require_ap_no_pmf(bssid) + wt.require_ap_no_pmf(apdev[0]['bssid']) diff --git a/tests/hwsim/test_ap_roam.py b/tests/hwsim/test_ap_roam.py index ade11f09c..3a966f7fc 100644 --- a/tests/hwsim/test_ap_roam.py +++ b/tests/hwsim/test_ap_roam.py @@ -14,32 +14,27 @@ logger = logging.getLogger(__name__) import hwsim_utils import hostapd -ap_ifname = 'wlan2' -bssid = "02:00:00:00:02:00" -ap2_ifname = 'wlan3' -bssid2 = "02:00:00:00:03:00" - -def test_ap_roam_open(dev): +def test_ap_roam_open(dev, apdev): """Roam between two open APs""" - hostapd.add_ap(ap_ifname, { "ssid": "test-open" }) + hostapd.add_ap(apdev[0]['ifname'], { "ssid": "test-open" }) dev[0].connect("test-open", key_mgmt="NONE") - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) - hostapd.add_ap(ap2_ifname, { "ssid": "test-open" }) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + hostapd.add_ap(apdev[1]['ifname'], { "ssid": "test-open" }) dev[0].scan(type="ONLY") - dev[0].roam(bssid2) - hwsim_utils.test_connectivity(dev[0].ifname, ap2_ifname) - dev[0].roam(bssid) - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) + dev[0].roam(apdev[1]['bssid']) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[1]['ifname']) + dev[0].roam(apdev[0]['bssid']) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) -def test_ap_roam_wpa2_psk(dev): +def test_ap_roam_wpa2_psk(dev, apdev): """Roam between two WPA2-PSK APs""" params = hostapd.wpa2_params(ssid="test-wpa2-psk", passphrase="12345678") - hostapd.add_ap(ap_ifname, params) + hostapd.add_ap(apdev[0]['ifname'], params) dev[0].connect("test-wpa2-psk", psk="12345678") - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) - hostapd.add_ap(ap2_ifname, params) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + hostapd.add_ap(apdev[1]['ifname'], params) dev[0].scan(type="ONLY") - dev[0].roam(bssid2) - hwsim_utils.test_connectivity(dev[0].ifname, ap2_ifname) - dev[0].roam(bssid) - hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) + dev[0].roam(apdev[1]['bssid']) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[1]['ifname']) + dev[0].roam(apdev[0]['bssid']) + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) diff --git a/tests/hwsim/test_ap_tdls.py b/tests/hwsim/test_ap_tdls.py index db2e903fd..9abada863 100644 --- a/tests/hwsim/test_ap_tdls.py +++ b/tests/hwsim/test_ap_tdls.py @@ -16,8 +16,6 @@ from hostapd import Hostapd import hostapd from wlantest import Wlantest -ap_ifname = 'wlan2' - def start_ap_wpa2_psk(ifname): params = hostapd.wpa2_params(ssid="test-wpa2-psk", passphrase="12345678") hostapd.add_ap(ifname, params) @@ -27,28 +25,28 @@ def connectivity(dev, ap_ifname): hwsim_utils.test_connectivity(dev[0].ifname, ap_ifname) hwsim_utils.test_connectivity(dev[1].ifname, ap_ifname) -def connect_2sta(dev, ssid): +def connect_2sta(dev, ssid, ap_ifname): dev[0].connect(ssid, psk="12345678") dev[1].connect(ssid, psk="12345678") connectivity(dev, ap_ifname) -def connect_2sta_wpa2_psk(dev): - connect_2sta(dev, "test-wpa2-psk") +def connect_2sta_wpa2_psk(dev, ap_ifname): + connect_2sta(dev, "test-wpa2-psk", ap_ifname) -def connect_2sta_wpa_psk(dev): - connect_2sta(dev, "test-wpa-psk") +def connect_2sta_wpa_psk(dev, ap_ifname): + connect_2sta(dev, "test-wpa-psk", ap_ifname) -def connect_2sta_wpa_psk_mixed(dev): +def connect_2sta_wpa_psk_mixed(dev, ap_ifname): dev[0].connect("test-wpa-mixed-psk", psk="12345678", proto="WPA") dev[1].connect("test-wpa-mixed-psk", psk="12345678", proto="WPA2") connectivity(dev, ap_ifname) -def connect_2sta_wep(dev): +def connect_2sta_wep(dev, ap_ifname): dev[0].connect("test-wep", key_mgmt="NONE", wep_key0='"hello"') dev[1].connect("test-wep", key_mgmt="NONE", wep_key0='"hello"') connectivity(dev, ap_ifname) -def connect_2sta_open(dev): +def connect_2sta_open(dev, ap_ifname): dev[0].connect("test-open", key_mgmt="NONE") dev[1].connect("test-open", key_mgmt="NONE") connectivity(dev, ap_ifname) @@ -127,129 +125,134 @@ def teardown_tdls(sta0, sta1, bssid): raise Exception("No TDLS Setup Teardown seen") tdls_check_ap(sta0, sta1, bssid, addr0, addr1) -def test_ap_wpa2_tdls(dev): +def test_ap_wpa2_tdls(dev, apdev): """WPA2-PSK AP and two stations using TDLS""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) setup_tdls(dev[0], dev[1], bssid) teardown_tdls(dev[0], dev[1], bssid) setup_tdls(dev[1], dev[0], bssid) #teardown_tdls(dev[0], dev[1], bssid) -def test_ap_wpa2_tdls_concurrent_init(dev): +def test_ap_wpa2_tdls_concurrent_init(dev, apdev): """Concurrent TDLS setup initiation""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[0].request("SET tdls_testing 0x80") setup_tdls(dev[1], dev[0], bssid, reverse=True) -def test_ap_wpa2_tdls_concurrent_init2(dev): +def test_ap_wpa2_tdls_concurrent_init2(dev, apdev): """Concurrent TDLS setup initiation (reverse)""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[1].request("SET tdls_testing 0x80") setup_tdls(dev[0], dev[1], bssid) -def test_ap_wpa2_tdls_decline_resp(dev): +def test_ap_wpa2_tdls_decline_resp(dev, apdev): """Decline TDLS Setup Response""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[1].request("SET tdls_testing 0x200") setup_tdls(dev[1], dev[0], bssid, expect_fail=True) -def test_ap_wpa2_tdls_long_lifetime(dev): +def test_ap_wpa2_tdls_long_lifetime(dev, apdev): """TDLS with long TPK lifetime""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[1].request("SET tdls_testing 0x40") setup_tdls(dev[1], dev[0], bssid) -def test_ap_wpa2_tdls_long_frame(dev): +def test_ap_wpa2_tdls_long_frame(dev, apdev): """TDLS with long setup/teardown frames""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[0].request("SET tdls_testing 0x1") dev[1].request("SET tdls_testing 0x1") setup_tdls(dev[1], dev[0], bssid) teardown_tdls(dev[1], dev[0], bssid) setup_tdls(dev[0], dev[1], bssid) -def test_ap_wpa2_tdls_reneg(dev): +def test_ap_wpa2_tdls_reneg(dev, apdev): """Renegotiate TDLS link""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) setup_tdls(dev[1], dev[0], bssid) setup_tdls(dev[0], dev[1], bssid) -def test_ap_wpa2_tdls_wrong_lifetime_resp(dev): +def test_ap_wpa2_tdls_wrong_lifetime_resp(dev, apdev): """Incorrect TPK lifetime in TDLS Setup Response""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[1].request("SET tdls_testing 0x10") setup_tdls(dev[0], dev[1], bssid, expect_fail=True) -def test_ap_wpa2_tdls_diff_rsnie(dev): +def test_ap_wpa2_tdls_diff_rsnie(dev, apdev): """TDLS with different RSN IEs""" - start_ap_wpa2_psk(ap_ifname) - bssid = "02:00:00:00:02:00" + start_ap_wpa2_psk(apdev[0]['ifname']) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa2_psk(dev) + connect_2sta_wpa2_psk(dev, apdev[0]['ifname']) dev[1].request("SET tdls_testing 0x2") setup_tdls(dev[1], dev[0], bssid) teardown_tdls(dev[1], dev[0], bssid) -def test_ap_wpa_tdls(dev): +def test_ap_wpa_tdls(dev, apdev): """WPA-PSK AP and two stations using TDLS""" - hostapd.add_ap(ap_ifname, hostapd.wpa_params(ssid="test-wpa-psk", passphrase="12345678")) - bssid = "02:00:00:00:02:00" + hostapd.add_ap(apdev[0]['ifname'], + hostapd.wpa_params(ssid="test-wpa-psk", + passphrase="12345678")) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa_psk(dev) + connect_2sta_wpa_psk(dev, apdev[0]['ifname']) setup_tdls(dev[0], dev[1], bssid) teardown_tdls(dev[0], dev[1], bssid) setup_tdls(dev[1], dev[0], bssid) -def test_ap_wpa_mixed_tdls(dev): +def test_ap_wpa_mixed_tdls(dev, apdev): """WPA+WPA2-PSK AP and two stations using TDLS""" - hostapd.add_ap(ap_ifname, hostapd.wpa_mixed_params(ssid="test-wpa-mixed-psk", passphrase="12345678")) - bssid = "02:00:00:00:02:00" + hostapd.add_ap(apdev[0]['ifname'], + hostapd.wpa_mixed_params(ssid="test-wpa-mixed-psk", + passphrase="12345678")) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wpa_psk_mixed(dev) + connect_2sta_wpa_psk_mixed(dev, apdev[0]['ifname']) setup_tdls(dev[0], dev[1], bssid) teardown_tdls(dev[0], dev[1], bssid) setup_tdls(dev[1], dev[0], bssid) -def test_ap_wep_tdls(dev): +def test_ap_wep_tdls(dev, apdev): """WEP AP and two stations using TDLS""" - hostapd.add_ap(ap_ifname, { "ssid": "test-wep", "wep_key0": '"hello"' }) - bssid = "02:00:00:00:02:00" + hostapd.add_ap(apdev[0]['ifname'], + { "ssid": "test-wep", "wep_key0": '"hello"' }) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_wep(dev) + connect_2sta_wep(dev, apdev[0]['ifname']) setup_tdls(dev[0], dev[1], bssid) teardown_tdls(dev[0], dev[1], bssid) setup_tdls(dev[1], dev[0], bssid) -def test_ap_open_tdls(dev): +def test_ap_open_tdls(dev, apdev): """Open AP and two stations using TDLS""" - hostapd.add_ap(ap_ifname, { "ssid": "test-open" }) - bssid = "02:00:00:00:02:00" + hostapd.add_ap(apdev[0]['ifname'], { "ssid": "test-open" }) + bssid = apdev[0]['bssid'] wlantest_setup() - connect_2sta_open(dev) + connect_2sta_open(dev, apdev[0]['ifname']) setup_tdls(dev[0], dev[1], bssid) teardown_tdls(dev[0], dev[1], bssid) setup_tdls(dev[1], dev[0], bssid) diff --git a/tests/hwsim/test_ap_wps.py b/tests/hwsim/test_ap_wps.py index 931418207..63a2ed5f6 100644 --- a/tests/hwsim/test_ap_wps.py +++ b/tests/hwsim/test_ap_wps.py @@ -14,17 +14,12 @@ logger = logging.getLogger(__name__) import hwsim_utils import hostapd -ap_ifname = 'wlan2' -bssid = "02:00:00:00:02:00" -ap2_ifname = 'wlan3' -bssid2 = "02:00:00:00:03:00" - -def test_ap_wps_init(dev): +def test_ap_wps_init(dev, apdev): """Initial AP configuration with first WPS Enrollee""" ssid = "test-wps" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": ssid, "eap_server": "1", "wps_state": "1" }) - hapd = hostapd.Hostapd(ap_ifname) + hapd = hostapd.Hostapd(apdev[0]['ifname']) logger.info("WPS provisioning step") hapd.request("WPS_PBC") dev[0].dump_monitor() @@ -33,7 +28,7 @@ def test_ap_wps_init(dev): if ev is None: raise Exception("Association with the AP timed out") status = dev[0].get_status() - if status['wpa_state'] != 'COMPLETED' or status['bssid'] != bssid: + if status['wpa_state'] != 'COMPLETED' or status['bssid'] != apdev[0]['bssid']: raise Exception("Not fully connected") if status['ssid'] != ssid: raise Exception("Unexpected SSID") @@ -42,14 +37,14 @@ def test_ap_wps_init(dev): if status['key_mgmt'] != 'WPA2-PSK': raise Exception("Unexpected key_mgmt") -def test_ap_wps_conf(dev): +def test_ap_wps_conf(dev, apdev): """WPS PBC provisioning with configured AP""" ssid = "test-wps-conf" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": ssid, "eap_server": "1", "wps_state": "2", "wpa_passphrase": "12345678", "wpa": "2", "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP"}) - hapd = hostapd.Hostapd(ap_ifname) + hapd = hostapd.Hostapd(apdev[0]['ifname']) logger.info("WPS provisioning step") hapd.request("WPS_PBC") dev[0].dump_monitor() @@ -58,8 +53,10 @@ def test_ap_wps_conf(dev): if ev is None: raise Exception("Association with the AP timed out") status = dev[0].get_status() - if status['wpa_state'] != 'COMPLETED' or status['bssid'] != bssid: + if status['wpa_state'] != 'COMPLETED': raise Exception("Not fully connected") + if status['bssid'] != apdev[0]['bssid']: + raise Exception("Unexpected BSSID") if status['ssid'] != ssid: raise Exception("Unexpected SSID") if status['pairwise_cipher'] != 'CCMP' or status['group_cipher'] != 'CCMP': @@ -67,14 +64,14 @@ def test_ap_wps_conf(dev): if status['key_mgmt'] != 'WPA2-PSK': raise Exception("Unexpected key_mgmt") -def test_ap_wps_conf_pin(dev): +def test_ap_wps_conf_pin(dev, apdev): """WPS PIN provisioning with configured AP""" ssid = "test-wps-conf-pin" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": ssid, "eap_server": "1", "wps_state": "2", "wpa_passphrase": "12345678", "wpa": "2", "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP"}) - hapd = hostapd.Hostapd(ap_ifname) + hapd = hostapd.Hostapd(apdev[0]['ifname']) logger.info("WPS provisioning step") pin = dev[0].wps_read_pin() hapd.request("WPS_PIN any " + pin) @@ -84,7 +81,7 @@ def test_ap_wps_conf_pin(dev): if ev is None: raise Exception("Association with the AP timed out") status = dev[0].get_status() - if status['wpa_state'] != 'COMPLETED' or status['bssid'] != bssid: + if status['wpa_state'] != 'COMPLETED' or status['bssid'] != apdev[0]['bssid']: raise Exception("Not fully connected") if status['ssid'] != ssid: raise Exception("Unexpected SSID") @@ -93,11 +90,11 @@ def test_ap_wps_conf_pin(dev): if status['key_mgmt'] != 'WPA2-PSK': raise Exception("Unexpected key_mgmt") -def test_ap_wps_reg_connect(dev): +def test_ap_wps_reg_connect(dev, apdev): """WPS registrar using AP PIN to connect""" ssid = "test-wps-conf-ap-pin" appin = "12345670" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": ssid, "eap_server": "1", "wps_state": "2", "wpa_passphrase": "12345678", "wpa": "2", "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP", @@ -105,12 +102,12 @@ def test_ap_wps_reg_connect(dev): logger.info("WPS provisioning step") dev[0].request("BSS_FLUSH") dev[0].dump_monitor() - dev[0].request("WPS_REG " + bssid + " " + appin) + dev[0].request("WPS_REG " + apdev[0]['bssid'] + " " + appin) ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=15) if ev is None: raise Exception("Association with the AP timed out") status = dev[0].get_status() - if status['wpa_state'] != 'COMPLETED' or status['bssid'] != bssid: + if status['wpa_state'] != 'COMPLETED' or status['bssid'] != apdev[0]['bssid']: raise Exception("Not fully connected") if status['ssid'] != ssid: raise Exception("Unexpected SSID") @@ -119,11 +116,11 @@ def test_ap_wps_reg_connect(dev): if status['key_mgmt'] != 'WPA2-PSK': raise Exception("Unexpected key_mgmt") -def test_ap_wps_reg_config(dev): +def test_ap_wps_reg_config(dev, apdev): """WPS registrar configuring and AP using AP PIN""" ssid = "test-wps-init-ap-pin" appin = "12345670" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": ssid, "eap_server": "1", "wps_state": "2", "ap_pin": appin}) logger.info("WPS configuration step") @@ -131,12 +128,12 @@ def test_ap_wps_reg_config(dev): dev[0].dump_monitor() new_ssid = "wps-new-ssid" new_passphrase = "1234567890" - dev[0].request("WPS_REG " + bssid + " " + appin + " " + new_ssid.encode("hex") + " WPA2PSK CCMP " + new_passphrase.encode("hex")) + dev[0].request("WPS_REG " + apdev[0]['bssid'] + " " + appin + " " + new_ssid.encode("hex") + " WPA2PSK CCMP " + new_passphrase.encode("hex")) ev = dev[0].wait_event(["CTRL-EVENT-CONNECTED"], timeout=15) if ev is None: raise Exception("Association with the AP timed out") status = dev[0].get_status() - if status['wpa_state'] != 'COMPLETED' or status['bssid'] != bssid: + if status['wpa_state'] != 'COMPLETED' or status['bssid'] != apdev[0]['bssid']: raise Exception("Not fully connected") if status['ssid'] != new_ssid: raise Exception("Unexpected SSID") @@ -145,21 +142,21 @@ def test_ap_wps_reg_config(dev): if status['key_mgmt'] != 'WPA2-PSK': raise Exception("Unexpected key_mgmt") -def test_ap_wps_pbc_overlap_2ap(dev): +def test_ap_wps_pbc_overlap_2ap(dev, apdev): """WPS PBC session overlap with two active APs""" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": "wps1", "eap_server": "1", "wps_state": "2", "wpa_passphrase": "12345678", "wpa": "2", "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP", "wps_independent": "1"}) - hostapd.add_ap(ap2_ifname, + hostapd.add_ap(apdev[1]['ifname'], { "ssid": "wps2", "eap_server": "1", "wps_state": "2", "wpa_passphrase": "123456789", "wpa": "2", "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP", "wps_independent": "1"}) - hapd = hostapd.Hostapd(ap_ifname) + hapd = hostapd.Hostapd(apdev[0]['ifname']) hapd.request("WPS_PBC") - hapd2 = hostapd.Hostapd(ap2_ifname) + hapd2 = hostapd.Hostapd(apdev[1]['ifname']) hapd2.request("WPS_PBC") logger.info("WPS provisioning step") dev[0].dump_monitor() @@ -168,14 +165,14 @@ def test_ap_wps_pbc_overlap_2ap(dev): if ev is None: raise Exception("PBC session overlap not detected") -def test_ap_wps_pbc_overlap_2sta(dev): +def test_ap_wps_pbc_overlap_2sta(dev, apdev): """WPS PBC session overlap with two active STAs""" ssid = "test-wps-pbc-overlap" - hostapd.add_ap(ap_ifname, + hostapd.add_ap(apdev[0]['ifname'], { "ssid": ssid, "eap_server": "1", "wps_state": "2", "wpa_passphrase": "12345678", "wpa": "2", "wpa_key_mgmt": "WPA-PSK", "rsn_pairwise": "CCMP"}) - hapd = hostapd.Hostapd(ap_ifname) + hapd = hostapd.Hostapd(apdev[0]['ifname']) logger.info("WPS provisioning step") hapd.request("WPS_PBC") dev[0].request("BSS_FLUSH")