]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Convert test skipping to use exception
authorJouni Malinen <j@w1.fi>
Wed, 7 Jan 2015 12:19:30 +0000 (14:19 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 8 Jan 2015 20:43:47 +0000 (22:43 +0200)
Instead of returning "skip" from the test function, raise the new
HwsimSkip exception to indicate a test case was skipped.

Signed-off-by: Jouni Malinen <j@w1.fi>
26 files changed:
tests/hwsim/run-tests.py
tests/hwsim/test_ap_ciphers.py
tests/hwsim/test_ap_csa.py
tests/hwsim/test_ap_eap.py
tests/hwsim/test_ap_ft.py
tests/hwsim/test_ap_hs20.py
tests/hwsim/test_ap_ht.py
tests/hwsim/test_ap_psk.py
tests/hwsim/test_ap_qosmap.py
tests/hwsim/test_ap_tdls.py
tests/hwsim/test_ap_vht.py
tests/hwsim/test_ap_wps.py
tests/hwsim/test_dbus.py
tests/hwsim/test_dbus_old.py
tests/hwsim/test_dfs.py
tests/hwsim/test_eap_proto.py
tests/hwsim/test_erp.py
tests/hwsim/test_p2p_autogo.py
tests/hwsim/test_p2p_grpform.py
tests/hwsim/test_radius.py
tests/hwsim/test_rfkill.py
tests/hwsim/test_sae.py
tests/hwsim/test_suite_b.py
tests/hwsim/test_tnc.py
tests/hwsim/test_wext.py
tests/hwsim/test_wpas_mesh.py

index 7a6d60e31924e3e273939bd56c2617978fcf7055..7556abd59b0d3dd51fd8704374b4e62afa31d8c1 100755 (executable)
@@ -433,15 +433,12 @@ def main():
                     params = {}
                     params['logdir'] = args.logdir
                     params['long'] = args.long
-                    res = t(dev, apdev, params)
+                    t(dev, apdev, params)
                 elif t.func_code.co_argcount > 1:
-                    res = t(dev, apdev)
+                    t(dev, apdev)
                 else:
-                    res = t(dev)
-                if res == "skip":
-                    result = "SKIP"
-                else:
-                    result = "PASS"
+                    t(dev)
+                result = "PASS"
             except HwsimSkip, e:
                 logger.info("Skip test case: %s" % e)
                 result = "SKIP"
index 01b5d456c10ccc2eda3dfa00c46a1a40a730b7c3..60dc64bd89ab8969382ddd1921c8af7aed0e0b41 100644 (file)
@@ -11,10 +11,11 @@ import os.path
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 
 def check_cipher(dev, ap, cipher):
     if cipher not in dev.get_capability("pairwise"):
-        return "skip"
+        raise HwsimSkip("Cipher %s not supported" % cipher)
     params = { "ssid": "test-wpa2-psk",
                "wpa_passphrase": "12345678",
                "wpa": "2",
@@ -27,13 +28,13 @@ def check_cipher(dev, ap, cipher):
 
 def test_ap_cipher_tkip(dev, apdev):
     """WPA2-PSK/TKIP connection"""
-    return check_cipher(dev[0], apdev[0], "TKIP")
+    check_cipher(dev[0], apdev[0], "TKIP")
 
 def test_ap_cipher_tkip_countermeasures_ap(dev, apdev):
     """WPA-PSK/TKIP countermeasures (detected by AP)"""
     testfile = "/sys/kernel/debug/ieee80211/%s/netdev:%s/tkip_mic_test" % (dev[0].get_driver_status_field("phyname"), dev[0].ifname)
     if not os.path.exists(testfile):
-        return "skip"
+        raise HwsimSkip("tkip_mic_test not supported in mac80211")
 
     params = { "ssid": "tkip-countermeasures",
                "wpa_passphrase": "12345678",
@@ -73,7 +74,7 @@ def test_ap_cipher_tkip_countermeasures_sta(dev, apdev):
 
     testfile = "/sys/kernel/debug/ieee80211/%s/netdev:%s/tkip_mic_test" % (hapd.get_driver_status_field("phyname"), apdev[0]['ifname'])
     if not os.path.exists(testfile):
-        return "skip"
+        raise HwsimSkip("tkip_mic_test not supported in mac80211")
 
     dev[0].connect("tkip-countermeasures", psk="12345678",
                    pairwise="TKIP", group="TKIP", scan_freq="2412")
@@ -97,19 +98,19 @@ def test_ap_cipher_tkip_countermeasures_sta(dev, apdev):
 
 def test_ap_cipher_ccmp(dev, apdev):
     """WPA2-PSK/CCMP connection"""
-    return check_cipher(dev[0], apdev[0], "CCMP")
+    check_cipher(dev[0], apdev[0], "CCMP")
 
 def test_ap_cipher_gcmp(dev, apdev):
     """WPA2-PSK/GCMP connection"""
-    return check_cipher(dev[0], apdev[0], "GCMP")
+    check_cipher(dev[0], apdev[0], "GCMP")
 
 def test_ap_cipher_ccmp_256(dev, apdev):
     """WPA2-PSK/CCMP-256 connection"""
-    return check_cipher(dev[0], apdev[0], "CCMP-256")
+    check_cipher(dev[0], apdev[0], "CCMP-256")
 
 def test_ap_cipher_gcmp_256(dev, apdev):
     """WPA2-PSK/GCMP-256 connection"""
-    return check_cipher(dev[0], apdev[0], "GCMP-256")
+    check_cipher(dev[0], apdev[0], "GCMP-256")
 
 def test_ap_cipher_mixed_wpa_wpa2(dev, apdev):
     """WPA2-PSK/CCMP/ and WPA-PSK/TKIP mixed configuration"""
index ebf926fb11a859f96d76fa9139b47498e17ac576..c88e517e1bb8b019cdd8a08efd561744f15edc3f 100644 (file)
@@ -10,6 +10,7 @@ logger = logging.getLogger()
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 
 def connect(dev, apdev):
     params = { "ssid": "ap-csa",
@@ -31,12 +32,12 @@ def switch_channel(ap, count, freq):
 # WpaSupplicant or Hostapd supports CSA.
 def csa_supported(dev):
     res = dev.get_driver_status()
-    return (int(res['capa.flags'], 0) & 0x80000000) != 0
+    if (int(res['capa.flags'], 0) & 0x80000000) == 0:
+        raise HwsimSkip("CSA not supported")
 
 def test_ap_csa_1_switch(dev, apdev):
     """AP Channel Switch, one switch"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
@@ -45,8 +46,7 @@ def test_ap_csa_1_switch(dev, apdev):
 
 def test_ap_csa_2_switches(dev, apdev):
     """AP Channel Switch, two switches"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
@@ -57,8 +57,7 @@ def test_ap_csa_2_switches(dev, apdev):
 
 def test_ap_csa_1_switch_count_0(dev, apdev):
     """AP Channel Switch, one switch with count 0"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
@@ -68,8 +67,7 @@ def test_ap_csa_1_switch_count_0(dev, apdev):
 
 def test_ap_csa_2_switches_count_0(dev, apdev):
     """AP Channel Switch, two switches with count 0"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
@@ -82,8 +80,7 @@ def test_ap_csa_2_switches_count_0(dev, apdev):
 
 def test_ap_csa_1_switch_count_1(dev, apdev):
     """AP Channel Switch, one switch with count 1"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
@@ -93,8 +90,7 @@ def test_ap_csa_1_switch_count_1(dev, apdev):
 
 def test_ap_csa_2_switches_count_1(dev, apdev):
     """AP Channel Switch, two switches with count 1"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
@@ -107,8 +103,7 @@ def test_ap_csa_2_switches_count_1(dev, apdev):
 
 def test_ap_csa_1_switch_count_2(dev, apdev):
     """AP Channel Switch, one switch with count 2"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     ap = connect(dev[0], apdev)
 
     hwsim_utils.test_connectivity(dev[0], ap)
index 5fe99eb10d1f9566330e826d82a73c4ddb31e85c..700130a9fc73b05510937f466065958b3d55d719 100644 (file)
@@ -15,8 +15,13 @@ import os
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 from test_ap_psk import check_mib, find_wpas_process, read_process_memory, verify_not_present, get_key_locations
 
+def check_hlr_auc_gw_support():
+    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
+        raise HwsimSkip("No hlr_auc_gw available")
+
 def read_pem(fname):
     with open(fname, "r") as f:
         lines = f.readlines()
@@ -103,9 +108,7 @@ def eap_reauth(dev, method, rsn=True, sha256=False, expect_failure=False):
 
 def test_ap_wpa2_eap_sim(dev, apdev):
     """WPA2-Enterprise connection using EAP-SIM"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     hapd = hostapd.add_ap(apdev[0]['ifname'], params)
     eap_connect(dev[0], apdev[0], "SIM", "1232010000000000",
@@ -156,13 +159,11 @@ def test_ap_wpa2_eap_sim(dev, apdev):
 
 def test_ap_wpa2_eap_sim_sql(dev, apdev, params):
     """WPA2-Enterprise connection using EAP-SIM (SQL)"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     try:
         import sqlite3
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No sqlite3 module available")
     con = sqlite3.connect(os.path.join(params['logdir'], "hostapd.db"))
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     params['auth_server_port'] = "1814"
@@ -248,14 +249,12 @@ def test_ap_wpa2_eap_sim_config(dev, apdev):
 def test_ap_wpa2_eap_sim_ext(dev, apdev):
     """WPA2-Enterprise connection using EAP-SIM and external GSM auth"""
     try:
-        return _test_ap_wpa2_eap_sim_ext(dev, apdev)
+        _test_ap_wpa2_eap_sim_ext(dev, apdev)
     finally:
         dev[0].request("SET external_sim 0")
 
 def _test_ap_wpa2_eap_sim_ext(dev, apdev):
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     hostapd.add_ap(apdev[0]['ifname'], params)
     dev[0].request("SET external_sim 1")
@@ -380,9 +379,7 @@ def _test_ap_wpa2_eap_sim_ext(dev, apdev):
 
 def test_ap_wpa2_eap_aka(dev, apdev):
     """WPA2-Enterprise connection using EAP-AKA"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     hapd = hostapd.add_ap(apdev[0]['ifname'], params)
     eap_connect(dev[0], apdev[0], "AKA", "0232010000000000",
@@ -436,13 +433,11 @@ def test_ap_wpa2_eap_aka(dev, apdev):
 
 def test_ap_wpa2_eap_aka_sql(dev, apdev, params):
     """WPA2-Enterprise connection using EAP-AKA (SQL)"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     try:
         import sqlite3
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No sqlite3 module available")
     con = sqlite3.connect(os.path.join(params['logdir'], "hostapd.db"))
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     params['auth_server_port'] = "1814"
@@ -505,14 +500,12 @@ def test_ap_wpa2_eap_aka_config(dev, apdev):
 def test_ap_wpa2_eap_aka_ext(dev, apdev):
     """WPA2-Enterprise connection using EAP-AKA and external UMTS auth"""
     try:
-        return _test_ap_wpa2_eap_aka_ext(dev, apdev)
+        _test_ap_wpa2_eap_aka_ext(dev, apdev)
     finally:
         dev[0].request("SET external_sim 0")
 
 def _test_ap_wpa2_eap_aka_ext(dev, apdev):
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     hostapd.add_ap(apdev[0]['ifname'], params)
     dev[0].request("SET external_sim 1")
@@ -680,9 +673,7 @@ def _test_ap_wpa2_eap_aka_ext(dev, apdev):
 
 def test_ap_wpa2_eap_aka_prime(dev, apdev):
     """WPA2-Enterprise connection using EAP-AKA'"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     hapd = hostapd.add_ap(apdev[0]['ifname'], params)
     eap_connect(dev[0], apdev[0], "AKA'", "6555444333222111",
@@ -705,13 +696,11 @@ def test_ap_wpa2_eap_aka_prime(dev, apdev):
 
 def test_ap_wpa2_eap_aka_prime_sql(dev, apdev, params):
     """WPA2-Enterprise connection using EAP-AKA' (SQL)"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     try:
         import sqlite3
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No sqlite3 module available")
     con = sqlite3.connect(os.path.join(params['logdir'], "hostapd.db"))
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     params['auth_server_port'] = "1814"
@@ -2064,9 +2053,7 @@ def test_ap_wpa2_eap_request_identity_message(dev, apdev):
 
 def test_ap_wpa2_eap_sim_aka_result_ind(dev, apdev):
     """WPA2-Enterprise using EAP-SIM/AKA and protected result indication"""
-    if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return "skip"
+    check_hlr_auc_gw_support()
     params = int_eap_server_params()
     params['eap_sim_db'] = "unix:/tmp/hlr_auc_gw.sock"
     params['eap_sim_aka_result_ind'] = "1"
@@ -2142,7 +2129,7 @@ def test_ap_wpa2_eap_sql(dev, apdev, params):
     try:
         import sqlite3
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No sqlite3 module available")
     dbfile = os.path.join(params['logdir'], "eap-user.db")
     try:
         os.remove(dbfile)
@@ -2301,11 +2288,9 @@ def test_wpa2_eap_ttls_pap_key_lifetime_in_memory(dev, apdev, params):
     get_key_locations(buf, msk, "MSK")
     get_key_locations(buf, emsk, "EMSK")
     if password not in buf:
-        print("Password not found while associated")
-        return "skip"
+        raise HwsimSkip("Password not found while associated")
     if pmk not in buf:
-        print("PMK not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK not found while associated")
     if kck not in buf:
         raise Exception("KCK not found while associated")
     if kek not in buf:
index 6ec0e97c764dd69f1c3c590199bb82b57ffeba6a..b00126269b33adf068b3cdb935e1528509578361 100644 (file)
@@ -13,6 +13,7 @@ logger = logging.getLogger()
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 from wlantest import Wlantest
 from test_ap_psk import check_mib, find_wpas_process, read_process_memory, verify_not_present, get_key_locations
 
@@ -514,14 +515,11 @@ def test_ft_psk_key_lifetime_in_memory(dev, apdev, params):
     get_key_locations(buf, pmkr0, "PMK-R0")
     get_key_locations(buf, pmkr1, "PMK-R1")
     if pmk not in buf:
-        print("PMK not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK not found while associated")
     if pmkr0 not in buf:
-        print("PMK-R0 not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK-R0 not found while associated")
     if pmkr1 not in buf:
-        print("PMK-R1 not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK-R1 not found while associated")
     if kck not in buf:
         raise Exception("KCK not found while associated")
     if kek not in buf:
index 804e9d02f5f87c03df5ad20e4e20e748766a3435..2172c3d2f71ade12754119960aaa742ac6371ecc 100644 (file)
@@ -16,6 +16,7 @@ import socket
 import subprocess
 
 import hostapd
+from utils import HwsimSkip
 import hwsim_utils
 from wlantest import Wlantest
 from wpasupplicant import WpaSupplicant
@@ -95,12 +96,9 @@ def check_sp_type(dev, sp_type):
 
 def hlr_auc_gw_available():
     if not os.path.exists("/tmp/hlr_auc_gw.sock"):
-        logger.info("No hlr_auc_gw available");
-        return False
+        raise HwsimSkip("No hlr_auc_gw socket available")
     if not os.path.exists("../../hostapd/hlr_auc_gw"):
-        logger.info("No hlr_auc_gw available");
-        return False
-    return True
+        raise HwsimSkip("No hlr_auc_gw available")
 
 def interworking_ext_sim_connect(dev, bssid, method):
     dev.request("INTERWORKING_CONNECT " + bssid)
@@ -275,7 +273,7 @@ def test_ap_nai_home_realm_query(dev, apdev):
 def test_ap_interworking_scan_filtering(dev, apdev):
     """Interworking scan filtering with HESSID and access network type"""
     try:
-        return _test_ap_interworking_scan_filtering(dev, apdev)
+        _test_ap_interworking_scan_filtering(dev, apdev)
     finally:
         dev[0].request("SET hessid 00:00:00:00:00:00")
         dev[0].request("SET access_network_type 15")
@@ -411,8 +409,7 @@ def hs20_simulated_sim(dev, ap, method):
 
 def test_ap_hs20_sim(dev, apdev):
     """Hotspot 2.0 with simulated SIM and EAP-SIM"""
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     hs20_simulated_sim(dev[0], apdev[0], "SIM")
     dev[0].request("INTERWORKING_SELECT auto freq=2412")
     ev = dev[0].wait_event(["INTERWORKING-ALREADY-CONNECTED"], timeout=15)
@@ -421,20 +418,17 @@ def test_ap_hs20_sim(dev, apdev):
 
 def test_ap_hs20_aka(dev, apdev):
     """Hotspot 2.0 with simulated USIM and EAP-AKA"""
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     hs20_simulated_sim(dev[0], apdev[0], "AKA")
 
 def test_ap_hs20_aka_prime(dev, apdev):
     """Hotspot 2.0 with simulated USIM and EAP-AKA'"""
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     hs20_simulated_sim(dev[0], apdev[0], "AKA'")
 
 def test_ap_hs20_ext_sim(dev, apdev):
     """Hotspot 2.0 with external SIM processing"""
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     bssid = apdev[0]['bssid']
     params = hs20_ap_params()
     params['hessid'] = bssid
@@ -454,8 +448,7 @@ def test_ap_hs20_ext_sim(dev, apdev):
 
 def test_ap_hs20_ext_sim_roaming(dev, apdev):
     """Hotspot 2.0 with external SIM processing in roaming network"""
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     bssid = apdev[0]['bssid']
     params = hs20_ap_params()
     params['hessid'] = bssid
@@ -1274,13 +1267,12 @@ def test_ap_hs20_max_bss_load2(dev, apdev):
 def test_ap_hs20_multi_cred_sp_prio(dev, apdev):
     """Hotspot 2.0 multi-cred sp_priority"""
     try:
-        return _test_ap_hs20_multi_cred_sp_prio(dev, apdev)
+        _test_ap_hs20_multi_cred_sp_prio(dev, apdev)
     finally:
         dev[0].request("SET external_sim 0")
 
 def _test_ap_hs20_multi_cred_sp_prio(dev, apdev):
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     bssid = apdev[0]['bssid']
     params = hs20_ap_params()
     params['hessid'] = bssid
@@ -1317,13 +1309,12 @@ def _test_ap_hs20_multi_cred_sp_prio(dev, apdev):
 def test_ap_hs20_multi_cred_sp_prio2(dev, apdev):
     """Hotspot 2.0 multi-cred sp_priority with two BSSes"""
     try:
-        return _test_ap_hs20_multi_cred_sp_prio2(dev, apdev)
+        _test_ap_hs20_multi_cred_sp_prio2(dev, apdev)
     finally:
         dev[0].request("SET external_sim 0")
 
 def _test_ap_hs20_multi_cred_sp_prio2(dev, apdev):
-    if not hlr_auc_gw_available():
-        return "skip"
+    hlr_auc_gw_available()
     bssid = apdev[0]['bssid']
     params = hs20_ap_params()
     params['hessid'] = bssid
@@ -2180,7 +2171,7 @@ def test_ap_hs20_remediation_sql(dev, apdev, params):
     try:
         import sqlite3
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No sqlite3 module available")
     dbfile = os.path.join(params['logdir'], "eap-user.db")
     try:
         os.remove(dbfile)
@@ -2342,8 +2333,7 @@ def _test_ap_hs20_proxyarp(dev, apdev):
         hapd.enable()
     except:
         # For now, do not report failures due to missing kernel support
-        logger.info("Could not start hostapd - assume proxyarp not supported in kernel version")
-        return "skip"
+        raise HwsimSkip("Could not start hostapd - assume proxyarp not supported in kernel version")
     ev = hapd.wait_event(["AP-ENABLED", "AP-DISABLED"], timeout=10)
     if ev is None:
         raise Exception("AP startup timed out")
@@ -2413,17 +2403,14 @@ def _test_ap_hs20_proxyarp(dev, apdev):
 
 def test_ap_hs20_proxyarp(dev, apdev):
     """Hotspot 2.0 and ProxyARP"""
-    res = None
     try:
-        res = _test_ap_hs20_proxyarp(dev, apdev)
+        _test_ap_hs20_proxyarp(dev, apdev)
     finally:
         subprocess.call(['ip', 'link', 'set', 'dev', 'ap-br0', 'down'],
                         stderr=open('/dev/null', 'w'))
         subprocess.call(['brctl', 'delbr', 'ap-br0'],
                         stderr=open('/dev/null', 'w'))
 
-    return res
-
 def _test_ap_hs20_proxyarp_dgaf(dev, apdev, disabled):
     bssid = apdev[0]['bssid']
     params = hs20_ap_params()
@@ -2437,8 +2424,7 @@ def _test_ap_hs20_proxyarp_dgaf(dev, apdev, disabled):
         hapd.enable()
     except:
         # For now, do not report failures due to missing kernel support
-        logger.info("Could not start hostapd - assume proxyarp not supported in kernel version")
-        return "skip"
+        raise HwsimSkip("Could not start hostapd - assume proxyarp not supported in kernel version")
     ev = hapd.wait_event(["AP-ENABLED"], timeout=10)
     if ev is None:
         raise Exception("AP startup timed out")
@@ -2512,30 +2498,24 @@ def _test_ap_hs20_proxyarp_dgaf(dev, apdev, disabled):
 
 def test_ap_hs20_proxyarp_disable_dgaf(dev, apdev):
     """Hotspot 2.0 and ProxyARP with DGAF disabled"""
-    res = None
     try:
-        res = _test_ap_hs20_proxyarp_dgaf(dev, apdev, True)
+        _test_ap_hs20_proxyarp_dgaf(dev, apdev, True)
     finally:
         subprocess.call(['ip', 'link', 'set', 'dev', 'ap-br0', 'down'],
                         stderr=open('/dev/null', 'w'))
         subprocess.call(['brctl', 'delbr', 'ap-br0'],
                         stderr=open('/dev/null', 'w'))
 
-    return res
-
 def test_ap_hs20_proxyarp_enable_dgaf(dev, apdev):
     """Hotspot 2.0 and ProxyARP with DGAF enabled"""
-    res = None
     try:
-        res = _test_ap_hs20_proxyarp_dgaf(dev, apdev, False)
+        _test_ap_hs20_proxyarp_dgaf(dev, apdev, False)
     finally:
         subprocess.call(['ip', 'link', 'set', 'dev', 'ap-br0', 'down'],
                         stderr=open('/dev/null', 'w'))
         subprocess.call(['brctl', 'delbr', 'ap-br0'],
                         stderr=open('/dev/null', 'w'))
 
-    return res
-
 def ip_checksum(buf):
     sum = 0
     if len(buf) & 0x01:
@@ -2787,8 +2767,7 @@ def _test_proxyarp_open(dev, apdev, params):
         hapd.enable()
     except:
         # For now, do not report failures due to missing kernel support
-        logger.info("Could not start hostapd - assume proxyarp not supported in kernel version")
-        return "skip"
+        raise HwsimSkip("Could not start hostapd - assume proxyarp not supported in kernel version")
     ev = hapd.wait_event(["AP-ENABLED", "AP-DISABLED"], timeout=10)
     if ev is None:
         raise Exception("AP startup timed out")
@@ -3046,9 +3025,8 @@ def _test_proxyarp_open(dev, apdev, params):
 
 def test_proxyarp_open(dev, apdev, params):
     """ProxyARP with open network"""
-    res = None
     try:
-        res = _test_proxyarp_open(dev, apdev, params)
+        _test_proxyarp_open(dev, apdev, params)
     finally:
         try:
             subprocess.call(['ebtables', '-F', 'FORWARD'])
@@ -3059,5 +3037,3 @@ def test_proxyarp_open(dev, apdev, params):
                         stderr=open('/dev/null', 'w'))
         subprocess.call(['brctl', 'delbr', 'ap-br0'],
                         stderr=open('/dev/null', 'w'))
-
-    return res
index 539413adfd0a98ee4be20e70a6f5027f1ab896fc..f300efc7eaf5b91bf070a44b01b927cc188a24d3 100644 (file)
@@ -11,6 +11,7 @@ import struct
 import subprocess
 
 import hostapd
+from utils import HwsimSkip
 import hwsim_utils
 from test_ap_csa import csa_supported
 
@@ -630,8 +631,7 @@ def test_ap_ht_40mhz_intolerant_ap(dev, apdev):
 
 def test_ap_ht40_csa(dev, apdev):
     """HT with 40 MHz channel width and CSA"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     try:
         hapd = None
         params = { "ssid": "ht",
@@ -675,8 +675,7 @@ def test_ap_ht40_csa(dev, apdev):
 
 def test_ap_ht40_csa2(dev, apdev):
     """HT with 40 MHz channel width and CSA"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     try:
         hapd = None
         params = { "ssid": "ht",
@@ -720,8 +719,7 @@ def test_ap_ht40_csa2(dev, apdev):
 
 def test_ap_ht40_csa3(dev, apdev):
     """HT with 40 MHz channel width and CSA"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     try:
         hapd = None
         params = { "ssid": "ht",
@@ -769,8 +767,7 @@ def test_ap_ht_smps(dev, apdev):
     try:
         hapd = hostapd.add_ap(apdev[0]['ifname'], params)
     except:
-        logger.info("Assume mac80211_hwsim was not recent enough to support SMPS")
-        return "skip"
+        raise HwsimSkip("Assume mac80211_hwsim was not recent enough to support SMPS")
     params = { "ssid": "ht2", "ht_capab": "[SMPS-DYNAMIC]" }
     hapd2 = hostapd.add_ap(apdev[1]['ifname'], params)
 
index 5baa7a37957574ebe689722978bbf97d53ba601e..e8806bf26c512728c1d162cbcdce6d8fec43a35d 100644 (file)
@@ -16,6 +16,7 @@ import subprocess
 import time
 
 import hostapd
+from utils import HwsimSkip
 import hwsim_utils
 
 def check_mib(dev, vals):
@@ -940,8 +941,7 @@ def test_wpa2_psk_key_lifetime_in_memory(dev, apdev, params):
     logger.info("Checking keys in memory while associated")
     get_key_locations(buf, pmk, "PMK")
     if pmk not in buf:
-        print("PMK not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK not found while associated")
     if kck not in buf:
         raise Exception("KCK not found while associated")
     if kek not in buf:
index 7a1f8a65e67b5b023c79b40d30d66ab7af7550da..67604b2348fd284513976184802cb25cfd9d8a09 100644 (file)
@@ -11,6 +11,7 @@ logger = logging.getLogger()
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 from wlantest import Wlantest
 
 def check_qos_map(ap, hapd, dev, sta, dscp, tid, ap_tid=None):
@@ -36,7 +37,7 @@ def test_ap_qosmap(dev, apdev):
     """QoS mapping"""
     drv_flags = dev[0].get_driver_status_field("capa.flags")
     if int(drv_flags, 0) & 0x40000000 == 0:
-        return "skip"
+        raise HwsimSkip("Driver does not support QoS Map")
     ssid = "test-qosmap"
     params = { "ssid": ssid }
     params['qos_map_set'] = '53,2,22,6,8,15,0,7,255,255,16,31,32,39,255,255,40,47,48,55'
index e1bb76e69d0128e97f8901f4af577c378561b4a4..64ed7db12239640737162126c17514ea3be956d1 100644 (file)
@@ -13,6 +13,7 @@ import hwsim_utils
 from hostapd import HostapdGlobal
 from hostapd import Hostapd
 import hostapd
+from utils import HwsimSkip
 from wlantest import Wlantest
 
 def start_ap_wpa2_psk(ifname):
@@ -363,8 +364,7 @@ def test_tdls_chan_switch(dev, apdev):
     """Open AP and two stations using TDLS"""
     flags = int(dev[0].get_driver_status_field('capa.flags'), 16)
     if flags & 0x800000000 == 0:
-        logger.info("Driver does not support TDLS channel switching")
-        return "skip"
+        raise HwsimSkip("Driver does not support TDLS channel switching")
 
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "test-open" })
     connect_2sta_open(dev, hapd)
index 235508ecc0e7e9ad65951fbcfc29c439e83c55d8..e59ec2e3362e08c8c34b9921c078c8aaa8dfc068 100644 (file)
@@ -12,6 +12,7 @@ import subprocess, time
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 from test_dfs import wait_dfs_event
 from test_ap_csa import csa_supported
 
@@ -42,8 +43,7 @@ def test_ap_vht80(dev, apdev):
     except Exception, e:
         if isinstance(e, Exception) and str(e) == "AP startup failed":
             if not vht_supported():
-                logger.info("80 MHz channel not supported in regulatory information")
-                return "skip"
+                raise HwsimSkip("80 MHz channel not supported in regulatory information")
         raise
     finally:
         dev[0].request("DISCONNECT")
@@ -82,8 +82,7 @@ def test_ap_vht80_params(dev, apdev):
     except Exception, e:
         if isinstance(e, Exception) and str(e) == "AP startup failed":
             if not vht_supported():
-                logger.info("80 MHz channel not supported in regulatory information")
-                return "skip"
+                raise HwsimSwkip("80 MHz channel not supported in regulatory information")
         raise
     finally:
         dev[0].request("DISCONNECT")
@@ -202,7 +201,7 @@ def test_ap_vht160(dev, apdev):
                 # Not all systems have recent enough CRDA version and
                 # wireless-regdb changes to support 160 MHz and DFS. For now,
                 # do not report failures for this test case.
-                return "skip"
+                raise HwsimSkip("CRDA or wireless-regdb did not support 160 MHz")
             raise Exception("Unexpected interface state: " + state)
 
         params = { "ssid": "vht2",
@@ -277,8 +276,7 @@ def test_ap_vht160(dev, apdev):
     except Exception, e:
         if isinstance(e, Exception) and str(e) == "AP startup failed":
             if not vht_supported():
-                logger.info("80/160 MHz channel not supported in regulatory information")
-                return "skip"
+                raise HwsimSkip("80/160 MHz channel not supported in regulatory information")
         raise
     finally:
         dev[0].request("DISCONNECT")
@@ -347,8 +345,7 @@ def test_ap_vht80plus80(dev, apdev):
     except Exception, e:
         if isinstance(e, Exception) and str(e) == "AP startup failed":
             if not vht_supported():
-                logger.info("80/160 MHz channel not supported in regulatory information")
-                return "skip"
+                raise HwsimSkip("80/160 MHz channel not supported in regulatory information")
         raise
     finally:
         dev[0].request("DISCONNECT")
@@ -363,8 +360,7 @@ def test_ap_vht80plus80(dev, apdev):
 
 def test_ap_vht80_csa(dev, apdev):
     """VHT with 80 MHz channel width and CSA"""
-    if not csa_supported(dev[0]):
-        return "skip"
+    csa_supported(dev[0])
     try:
         hapd = None
         params = { "ssid": "vht",
@@ -406,8 +402,7 @@ def test_ap_vht80_csa(dev, apdev):
     except Exception, e:
         if isinstance(e, Exception) and str(e) == "AP startup failed":
             if not vht_supported():
-                logger.info("80 MHz channel not supported in regulatory information")
-                return "skip"
+                raise HwsimSkip("80 MHz channel not supported in regulatory information")
         raise
     finally:
         dev[0].request("DISCONNECT")
index 70ef48f5427dc40b82b92e9df2d2a5a47f67ef44..59f12b5244e619fcce0e0f6a0565a003dd915a54 100644 (file)
@@ -20,6 +20,7 @@ import StringIO
 import hwsim_utils
 import hostapd
 from wpasupplicant import WpaSupplicant
+from utils import HwsimSkip
 
 def test_ap_wps_init(dev, apdev):
     """Initial AP configuration with first WPS Enrollee"""
@@ -1569,8 +1570,7 @@ def test_ap_wps_auto_setup_with_config_file(dev, apdev):
 def test_ap_wps_pbc_timeout(dev, apdev, params):
     """wpa_supplicant PBC walk time [long]"""
     if not params['long']:
-        logger.info("Skip test case with long duration due to --long not specified")
-        return "skip"
+        raise HwsimSkip("Skip test case with long duration due to --long not specified")
     ssid = "test-wps"
     hostapd.add_ap(apdev[0]['ifname'],
                    { "ssid": ssid, "eap_server": "1", "wps_state": "1" })
index f5038607ea3d9942479263529bd3fe8dce80425a..b7f50bd4126b33c4d1d17a4402ae3ecc3cb0f002 100644 (file)
@@ -298,7 +298,7 @@ def test_dbus_invalid_method(dev, apdev):
 def test_dbus_get_set_wps(dev, apdev):
     """D-Bus Get/Set for WPS properties"""
     try:
-        return _test_dbus_get_set_wps(dev, apdev)
+        _test_dbus_get_set_wps(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
         dev[0].request("SET config_methods display keypad virtual_display nfc_interface")
@@ -427,7 +427,7 @@ def test_dbus_wps_invalid(dev, apdev):
 def test_dbus_wps_pbc(dev, apdev):
     """D-Bus WPS/PBC operation and signals"""
     try:
-        return _test_dbus_wps_pbc(dev, apdev)
+        _test_dbus_wps_pbc(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -490,7 +490,7 @@ def _test_dbus_wps_pbc(dev, apdev):
 def test_dbus_wps_pin(dev, apdev):
     """D-Bus WPS/PIN operation and signals"""
     try:
-        return _test_dbus_wps_pin(dev, apdev)
+        _test_dbus_wps_pin(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -551,7 +551,7 @@ def _test_dbus_wps_pin(dev, apdev):
 def test_dbus_wps_pin2(dev, apdev):
     """D-Bus WPS/PIN operation and signals (PIN from wpa_supplicant)"""
     try:
-        return _test_dbus_wps_pin2(dev, apdev)
+        _test_dbus_wps_pin2(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -614,7 +614,7 @@ def _test_dbus_wps_pin2(dev, apdev):
 def test_dbus_wps_pin_m2d(dev, apdev):
     """D-Bus WPS/PIN operation and signals with M2D"""
     try:
-        return _test_dbus_wps_pin_m2d(dev, apdev)
+        _test_dbus_wps_pin_m2d(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -677,7 +677,7 @@ def _test_dbus_wps_pin_m2d(dev, apdev):
 def test_dbus_wps_reg(dev, apdev):
     """D-Bus WPS/Registrar operation and signals"""
     try:
-        return _test_dbus_wps_reg(dev, apdev)
+        _test_dbus_wps_reg(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -1460,7 +1460,7 @@ def test_dbus_pkcs11(dev, apdev):
 def test_dbus_apscan(dev, apdev):
     """D-Bus Get/Set ApScan"""
     try:
-        return _test_dbus_apscan(dev, apdev)
+        _test_dbus_apscan(dev, apdev)
     finally:
         dev[0].request("AP_SCAN 1")
 
@@ -1585,7 +1585,7 @@ def test_dbus_bss_expire(dev, apdev):
 def test_dbus_country(dev, apdev):
     """D-Bus Get/Set Country"""
     try:
-        return _test_dbus_country(dev, apdev)
+        _test_dbus_country(dev, apdev)
     finally:
         dev[0].request("SET country 00")
         subprocess.call(['iw', 'reg', 'set', '00'])
index dd724327d31e2933381f06706a5a6c7fca764d63..8285547c4ffe5214c8776211f7cb0ca5269dda20 100644 (file)
@@ -555,7 +555,7 @@ def test_dbus_old_connect_eap(dev, apdev):
 def test_dbus_old_wps_pbc(dev, apdev):
     """The old D-Bus interface and WPS/PBC"""
     try:
-        return _test_dbus_old_wps_pbc(dev, apdev)
+        _test_dbus_old_wps_pbc(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -622,7 +622,7 @@ def _test_dbus_old_wps_pbc(dev, apdev):
 def test_dbus_old_wps_pin(dev, apdev):
     """The old D-Bus interface and WPS/PIN"""
     try:
-        return _test_dbus_old_wps_pin(dev, apdev)
+        _test_dbus_old_wps_pin(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
@@ -677,7 +677,7 @@ def _test_dbus_old_wps_pin(dev, apdev):
 def test_dbus_old_wps_reg(dev, apdev):
     """The old D-Bus interface and WPS/Registar"""
     try:
-        return _test_dbus_old_wps_reg(dev, apdev)
+        _test_dbus_old_wps_reg(dev, apdev)
     finally:
         dev[0].request("SET wps_cred_processing 0")
 
index 08ded31d92e8b495518598c265d5f3990a9cf31f..cdf3c642d0ca51216b87eed8a5a91edd34fba087 100644 (file)
@@ -12,6 +12,7 @@ logger = logging.getLogger()
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 
 def wait_dfs_event(hapd, event, timeout):
     dfs_events = [ "DFS-RADAR-DETECTED", "DFS-NEW-CHANNEL",
@@ -68,7 +69,9 @@ def start_dfs_ap(ap, allow_failure=False, ssid="dfs", ht=True, ht40=False,
     if state != "DFS":
         if allow_failure:
             logger.info("Interface state not DFS: " + state)
-            return None
+            if not os.path.exists("dfs"):
+                raise HwsimSkip("Assume DFS testing not supported")
+            raise Exception("Failed to start DFS AP")
         raise Exception("Unexpected interface state: " + state)
 
     return hapd
@@ -84,10 +87,6 @@ def test_dfs(dev, apdev):
     """DFS CAC functionality on clear channel"""
     try:
         hapd = start_dfs_ap(apdev[0], allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
 
         ev = wait_dfs_event(hapd, "DFS-CAC-COMPLETED", 70)
         if "success=1" not in ev:
@@ -141,10 +140,6 @@ def test_dfs_radar(dev, apdev):
     try:
         hapd2 = None
         hapd = start_dfs_ap(apdev[0], allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
         time.sleep(1)
 
         dfs_simulate_radar(hapd)
@@ -231,10 +226,6 @@ def test_dfs_radar_chanlist(dev, apdev):
     """DFS chanlist when radar is detected"""
     try:
         hapd = start_dfs_ap(apdev[0], chanlist="40 44", allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
         time.sleep(1)
 
         dfs_simulate_radar(hapd)
@@ -269,10 +260,6 @@ def test_dfs_radar_chanlist_vht80(dev, apdev):
     try:
         hapd = start_dfs_ap(apdev[0], chanlist="36", ht40=True, vht80=True,
                             allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
         time.sleep(1)
 
         dfs_simulate_radar(hapd)
@@ -310,10 +297,6 @@ def test_dfs_radar_chanlist_vht20(dev, apdev):
     try:
         hapd = start_dfs_ap(apdev[0], chanlist="36", vht20=True,
                             allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
         time.sleep(1)
 
         dfs_simulate_radar(hapd)
@@ -348,10 +331,6 @@ def test_dfs_radar_no_ht(dev, apdev):
     try:
         hapd = start_dfs_ap(apdev[0], chanlist="36", ht=False,
                             allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
         time.sleep(1)
 
         dfs_simulate_radar(hapd)
@@ -386,10 +365,6 @@ def test_dfs_radar_ht40minus(dev, apdev):
     try:
         hapd = start_dfs_ap(apdev[0], chanlist="36", ht40minus=True,
                             allow_failure=True)
-        if hapd is None:
-            if not os.path.exists("dfs"):
-                return "skip"
-            raise Exception("Failed to start DFS AP")
         time.sleep(1)
 
         dfs_simulate_radar(hapd)
index 94865454c64ab3058f20261d2da27b8096723ead..6c5d8e1364e00c3d981789f4f5b355da21d5a9ba 100644 (file)
@@ -13,6 +13,7 @@ import threading
 import time
 
 import hostapd
+from utils import HwsimSkip
 
 EAP_CODE_REQUEST = 1
 EAP_CODE_RESPONSE = 2
@@ -53,7 +54,7 @@ def start_radius_server(eap_handler):
         import pyrad.packet
         import pyrad.dictionary
     except ImportError:
-        return None
+        raise HwsimSkip("No pyrad modules available")
 
     class TestServer(pyrad.server.Server):
         def _HandleAuthPacket(self, pkt):
@@ -260,8 +261,6 @@ def test_eap_proto(dev, apdev):
         return None
 
     srv = start_radius_server(eap_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -528,8 +527,6 @@ def test_eap_proto_sake(dev, apdev):
         return sake_challenge(ctx)
 
     srv = start_radius_server(sake_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -704,8 +701,6 @@ def test_eap_proto_leap(dev, apdev):
         return None
 
     srv = start_radius_server(leap_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -766,8 +761,6 @@ def test_eap_proto_md5(dev, apdev):
         return None
 
     srv = start_radius_server(md5_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -819,8 +812,6 @@ def test_eap_proto_otp(dev, apdev):
         return None
 
     srv = start_radius_server(otp_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -1274,8 +1265,6 @@ def test_eap_proto_gpsk(dev, apdev):
         return None
 
     srv = start_radius_server(gpsk_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -1582,8 +1571,6 @@ def test_eap_proto_eke(dev, apdev):
         return None
 
     srv = start_radius_server(eke_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -1904,8 +1891,6 @@ def test_eap_proto_pax(dev, apdev):
             return struct.pack(">BBH", EAP_CODE_FAILURE, ctx['id'], 4)
 
     srv = start_radius_server(pax_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -2043,8 +2028,6 @@ def test_eap_proto_psk(dev, apdev):
         return None
 
     srv = start_radius_server(psk_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -2786,8 +2769,6 @@ def test_eap_proto_aka(dev, apdev):
         return None
 
     srv = start_radius_server(aka_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -3133,8 +3114,6 @@ def test_eap_proto_aka_prime(dev, apdev):
         return None
 
     srv = start_radius_server(aka_prime_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -3539,8 +3518,6 @@ def test_eap_proto_sim(dev, apdev):
         return None
 
     srv = start_radius_server(sim_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
@@ -4002,8 +3979,6 @@ def test_eap_proto_ikev2(dev, apdev):
         return None
 
     srv = start_radius_server(ikev2_handler)
-    if srv is None:
-        return "skip"
 
     try:
         hapd = start_ap(apdev[0]['ifname'])
index af7c2d0e7a4cc9e858befd4ae73a98143d006ba4..f14a7f15572f7c81966c14737018be13b394d87a 100644 (file)
@@ -11,9 +11,15 @@ import os
 import time
 
 import hostapd
+from utils import HwsimSkip
 from test_ap_eap import int_eap_server_params
 from test_ap_psk import find_wpas_process, read_process_memory, verify_not_present, get_key_locations
 
+def check_erp_capa(dev):
+    capab = dev.get_capability("erp")
+    if not capab or 'ERP' not in capab:
+        raise HwsimSkip("ERP not supported in the build")
+
 def test_erp_initiate_reauth_start(dev, apdev):
     """Authenticator sending EAP-Initiate/Re-auth-Start, but ERP disabled on peer"""
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
@@ -43,9 +49,7 @@ def test_erp_enabled_on_server(dev, apdev):
 
 def test_erp(dev, apdev):
     """ERP enabled on server and peer"""
-    capab = dev[0].get_capability("erp")
-    if not capab or 'ERP' not in capab:
-        return "skip"
+    check_erp_capa(dev[0])
     params = int_eap_server_params()
     params['erp_send_reauth_start'] = '1'
     params['erp_domain'] = 'example.com'
@@ -71,9 +75,7 @@ def test_erp(dev, apdev):
 
 def test_erp_server_no_match(dev, apdev):
     """ERP enabled on server and peer, but server has no key match"""
-    capab = dev[0].get_capability("erp")
-    if not capab or 'ERP' not in capab:
-        return "skip"
+    check_erp_capa(dev[0])
     params = int_eap_server_params()
     params['erp_send_reauth_start'] = '1'
     params['erp_domain'] = 'example.com'
@@ -125,9 +127,7 @@ def start_erp_as(apdev):
 
 def test_erp_radius(dev, apdev):
     """ERP enabled on RADIUS server and peer"""
-    capab = dev[0].get_capability("erp")
-    if not capab or 'ERP' not in capab:
-        return "skip"
+    check_erp_capa(dev[0])
     start_erp_as(apdev[1])
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     params['auth_server_port'] = "18128"
@@ -175,9 +175,7 @@ def erp_test(dev, hapd, **kwargs):
 
 def test_erp_radius_eap_methods(dev, apdev):
     """ERP enabled on RADIUS server and peer"""
-    capab = dev[0].get_capability("erp")
-    if not capab or 'ERP' not in capab:
-        return "skip"
+    check_erp_capa(dev[0])
     start_erp_as(apdev[1])
     params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
     params['auth_server_port'] = "18128"
@@ -222,9 +220,7 @@ def test_erp_radius_eap_methods(dev, apdev):
 
 def test_erp_key_lifetime_in_memory(dev, apdev, params):
     """ERP and key lifetime in memory"""
-    capab = dev[0].get_capability("erp")
-    if not capab or 'ERP' not in capab:
-        return "skip"
+    check_erp_capa(dev[0])
     p = int_eap_server_params()
     p['erp_send_reauth_start'] = '1'
     p['erp_domain'] = 'example.com'
@@ -298,11 +294,9 @@ def test_erp_key_lifetime_in_memory(dev, apdev, params):
     get_key_locations(buf, rRK, "rRK")
     get_key_locations(buf, rIK, "rIK")
     if password not in buf:
-        print("Password not found while associated")
-        return "skip"
+        raise HwsimSkip("Password not found while associated")
     if pmk not in buf:
-        print("PMK not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK not found while associated")
     if kck not in buf:
         raise Exception("KCK not found while associated")
     if kek not in buf:
index 1ab5acdd239bf73e2a57e2f5d0f4e1eed6e94ce9..de42857003c8230bdee71c46d7993e217f95b867 100644 (file)
@@ -11,6 +11,7 @@ logger = logging.getLogger()
 
 import hwsim_utils
 import utils
+from utils import HwsimSkip
 from wlantest import Wlantest
 from wpasupplicant import WpaSupplicant
 
@@ -340,7 +341,7 @@ def test_autogo_chan_switch(dev):
     if "FAIL" in res:
         # for now, skip test since mac80211_hwsim support is not yet widely
         # deployed
-        return 'skip'
+        raise HwsimSkip("Assume mac80211_hwsim did not support channel switching")
     ev = dev[0].wait_event(["AP-CSA-FINISHED"], timeout=10)
     if ev is None:
         raise Exception("CSA finished event timed out")
index 152814242b4e54813a5664ed00f027a0b14675b0..57c6ff3a65bda97d67f57e49b523766568308d7d 100644 (file)
@@ -14,6 +14,7 @@ import os
 import hostapd
 import hwsim_utils
 import utils
+from utils import HwsimSkip
 from wpasupplicant import WpaSupplicant
 
 def check_grpform_results(i_res, r_res):
@@ -728,8 +729,7 @@ def test_grpform_goneg_fail_with_group_iface(dev):
 def test_grpform_cred_ready_timeout(dev, apdev, params):
     """P2P GO Negotiation wait for credentials to become ready [long]"""
     if not params['long']:
-        logger.info("Skip test case with long duration due to --long not specified")
-        return "skip"
+        raise HwsimSkip("Skip test case with long duration due to --long not specified")
 
     dev[1].p2p_listen()
     addr1 = dev[1].p2p_dev_addr()
index e68747ec2dba899b2fd3788830706f905fa5514a..af42a84c6e379c452a556ade411cc920b4a44c9a 100644 (file)
@@ -15,6 +15,7 @@ import threading
 import time
 
 import hostapd
+from utils import HwsimSkip
 
 def connect(dev, ssid, wait_connect=True):
     dev.connect(ssid, key_mgmt="WPA-EAP", scan_freq="2412",
@@ -237,7 +238,7 @@ def test_radius_das_disconnect(dev, apdev):
         import pyrad.dictionary
         import radius_das
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No pyrad modules available")
 
     params = hostapd.wpa2_eap_params(ssid="radius-das")
     params['radius_das_port'] = "3799"
@@ -504,7 +505,7 @@ def test_radius_das_coa(dev, apdev):
         import pyrad.dictionary
         import radius_das
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No pyrad modules available")
 
     params = hostapd.wpa2_eap_params(ssid="radius-das")
     params['radius_das_port'] = "3799"
@@ -626,7 +627,7 @@ def test_radius_protocol(dev, apdev):
         import pyrad.packet
         import pyrad.dictionary
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No pyrad modules available")
 
     class TestServer(pyrad.server.Server):
         def _HandleAuthPacket(self, pkt):
@@ -734,7 +735,7 @@ def test_radius_psk(dev, apdev):
         import pyrad.packet
         import pyrad.dictionary
     except ImportError:
-        return "skip"
+        raise HwsimSkip("No pyrad modules available")
 
     class TestServer(pyrad.server.Server):
         def _HandleAuthPacket(self, pkt):
index 27c620f4e5b2fb47820811bd6ba8ee046d642a68..425b40fce61129f84e3ea617e85abebbd6b6bbab 100644 (file)
@@ -13,6 +13,7 @@ from hostapd import HostapdGlobal
 import hwsim_utils
 from wpasupplicant import WpaSupplicant
 from rfkill import RFKill
+from utils import HwsimSkip
 
 def get_rfkill(dev):
     phy = dev.get_driver_status_field("phyname")
@@ -21,15 +22,12 @@ def get_rfkill(dev):
             if r.name == phy:
                 return r
     except Exception, e:
-        logger.info("No rfkill available: " + str(e))
-
-    return None
+        raise HwsimSkip("No rfkill available: " + str(e))
+    raise HwsimSkip("No rfkill match found for the interface")
 
 def test_rfkill_open(dev, apdev):
     """rfkill block/unblock during open mode connection"""
     rfk = get_rfkill(dev[0])
-    if rfk is None:
-        return "skip"
 
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "open" })
     dev[0].connect("open", key_mgmt="NONE", scan_freq="2412")
@@ -59,8 +57,6 @@ def test_rfkill_open(dev, apdev):
 def test_rfkill_wpa2_psk(dev, apdev):
     """rfkill block/unblock during WPA2-PSK connection"""
     rfk = get_rfkill(dev[0])
-    if rfk is None:
-        return "skip"
 
     ssid = "test-wpa2-psk"
     passphrase = 'qwertyuiop'
@@ -84,11 +80,7 @@ def test_rfkill_wpa2_psk(dev, apdev):
 def test_rfkill_autogo(dev, apdev):
     """rfkill block/unblock for autonomous P2P GO"""
     rfk0 = get_rfkill(dev[0])
-    if rfk0 is None:
-        return "skip"
     rfk1 = get_rfkill(dev[1])
-    if rfk1 is None:
-        return "skip"
 
     dev[0].p2p_start_go()
     dev[1].request("SET p2p_no_group_iface 0")
@@ -129,8 +121,6 @@ def test_rfkill_hostapd(dev, apdev):
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "open" })
 
     rfk = get_rfkill(hapd)
-    if rfk is None:
-        return "skip"
 
     try:
         rfk.block()
@@ -169,8 +159,6 @@ def test_rfkill_wpas(dev, apdev):
     wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
     wpas.interface_add("wlan5")
     rfk = get_rfkill(wpas)
-    if rfk is None:
-        return "skip"
     wpas.interface_remove("wlan5")
     try:
         rfk.block()
index 07afb1feaf17e35b8be56c8002001cc1acde9833..da694da15dd5b77dc58f4c7a23fa5141202a37fb 100644 (file)
@@ -13,6 +13,7 @@ logger = logging.getLogger()
 
 import hwsim_utils
 import hostapd
+from utils import HwsimSkip
 from test_ap_psk import find_wpas_process, read_process_memory, verify_not_present, get_key_locations
 
 def test_sae(dev, apdev):
@@ -228,11 +229,9 @@ def test_sae_key_lifetime_in_memory(dev, apdev, params):
     get_key_locations(buf, password, "Password")
     get_key_locations(buf, pmk, "PMK")
     if password not in buf:
-        print("Password not found while associated")
-        return "skip"
+        raise HwsimSkip("Password not found while associated")
     if pmk not in buf:
-        print("PMK not found while associated")
-        return "skip"
+        raise HwsimSkip("PMK not found while associated")
     if kck not in buf:
         raise Exception("KCK not found while associated")
     if kek not in buf:
index 77d0ebbb161621472eb87a2186bdc33fd7c65061..2b2c9c2dc11c9f292fea1d6d42b52ce55739eaa4 100644 (file)
@@ -9,11 +9,12 @@ import logging
 logger = logging.getLogger()
 
 import hostapd
+from utils import HwsimSkip
 
 def test_suite_b(dev, apdev):
     """WPA2-PSK/GCMP connection"""
     if "GCMP" not in dev[0].get_capability("pairwise"):
-        return "skip"
+        raise HwsimSkip("GCMP not supported")
     params = hostapd.wpa2_eap_params(ssid="test-suite-b")
     params["wpa_key_mgmt"] = "WPA-EAP-SUITE-B"
     params['rsn_pairwise'] = "GCMP"
index 003d0f8e99f317823ca3075472b523ae9f44df0e..0b1b07fa1486c53408f84bc68b7e1323a5c8623f 100644 (file)
@@ -8,6 +8,7 @@
 import os.path
 
 import hostapd
+from utils import HwsimSkip
 from test_ap_eap import int_eap_server_params
 
 def test_tnc_peap_soh(dev, apdev):
@@ -47,8 +48,7 @@ def test_tnc_ttls(dev, apdev):
     hostapd.add_ap(apdev[0]['ifname'], params)
 
     if not os.path.exists("tnc/libhostap_imc.so"):
-        logger.info("No IMC installed - skip")
-        return "skip"
+        raise HwsimSkip("No IMC installed")
 
     dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
                    eap="TTLS", identity="DOMAIN\mschapv2 user",
@@ -69,8 +69,7 @@ def test_tnc_fast(dev, apdev):
     hostapd.add_ap(apdev[0]['ifname'], params)
 
     if not os.path.exists("tnc/libhostap_imc.so"):
-        logger.info("No IMC installed - skip")
-        return "skip"
+        raise HwsimSkip("No IMC installed")
 
     dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP",
                    eap="FAST", identity="user",
index 97f33284930d08e001abae26bdc7d01b6c7ef5ae..7184660418bbad9e714122b0d207edef2565fa48 100644 (file)
@@ -1,5 +1,5 @@
 # Deprecated WEXT driver interface in wpa_supplicant
-# Copyright (c) 2013-2014, Jouni Malinen <j@w1.fi>
+# Copyright (c) 2013-2015, Jouni Malinen <j@w1.fi>
 #
 # This software may be distributed under the terms of the BSD license.
 # See README for more details.
@@ -11,26 +11,23 @@ import os
 import hostapd
 import hwsim_utils
 from wpasupplicant import WpaSupplicant
+from utils import HwsimSkip
 from test_rfkill import get_rfkill
 
 def get_wext_interface():
     if not os.path.exists("/proc/net/wireless"):
-        logger.info("WEXT support not included in the kernel")
-        return
+        raise HwsimSkip("WEXT support not included in the kernel")
 
     wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
     try:
         wpas.interface_add("wlan5", driver="wext")
     except Exception, e:
-        logger.info("WEXT driver support not included in wpa_supplicant")
-        return
+        raise HwsimSkip("WEXT driver support not included in wpa_supplicant")
     return wpas
 
 def test_wext_open(dev, apdev):
     """WEXT driver interface with open network"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     params = { "ssid": "wext-open" }
     hapd = hostapd.add_ap(apdev[0]['ifname'], params)
@@ -41,8 +38,6 @@ def test_wext_open(dev, apdev):
 def test_wext_wpa2_psk(dev, apdev):
     """WEXT driver interface with WPA2-PSK"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     params = hostapd.wpa2_params(ssid="wext-wpa2-psk", passphrase="12345678")
     hapd = hostapd.add_ap(apdev[0]['ifname'], params)
@@ -59,14 +54,12 @@ def test_wext_wpa2_psk(dev, apdev):
 def test_wext_wpa_psk(dev, apdev):
     """WEXT driver interface with WPA-PSK"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     params = hostapd.wpa_params(ssid="wext-wpa-psk", passphrase="12345678")
     hapd = hostapd.add_ap(apdev[0]['ifname'], params)
     testfile = "/sys/kernel/debug/ieee80211/%s/netdev:%s/tkip_mic_test" % (hapd.get_driver_status_field("phyname"), apdev[0]['ifname'])
     if not os.path.exists(testfile):
-        return "skip"
+        raise HwsimSkip("tkip_mic_test not supported in mac80211")
 
     wpas.connect("wext-wpa-psk", psk="12345678")
     hwsim_utils.test_connectivity(wpas, hapd)
@@ -87,8 +80,6 @@ def test_wext_wpa_psk(dev, apdev):
 def test_wext_pmksa_cache(dev, apdev):
     """PMKSA caching with WEXT"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     params = hostapd.wpa2_eap_params(ssid="test-pmksa-cache")
     hostapd.add_ap(apdev[0]['ifname'], params)
@@ -155,8 +146,6 @@ def test_wext_pmksa_cache(dev, apdev):
 def test_wext_wep_open_auth(dev, apdev):
     """WEP Open System authentication"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     hapd = hostapd.add_ap(apdev[0]['ifname'],
                           { "ssid": "wep-open",
@@ -170,8 +159,6 @@ def test_wext_wep_open_auth(dev, apdev):
 def test_wext_wep_shared_key_auth(dev, apdev):
     """WEP Shared Key authentication"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     hapd = hostapd.add_ap(apdev[0]['ifname'],
                           { "ssid": "wep-shared-key",
@@ -188,8 +175,6 @@ def test_wext_wep_shared_key_auth(dev, apdev):
 def test_wext_pmf(dev, apdev):
     """WEXT driver interface with WPA2-PSK and PMF"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     params = hostapd.wpa2_params(ssid="wext-wpa2-psk", passphrase="12345678")
     params["wpa_key_mgmt"] = "WPA-PSK-SHA256";
@@ -208,8 +193,6 @@ def test_wext_pmf(dev, apdev):
 def test_wext_scan_hidden(dev, apdev):
     """WEXT with hidden SSID"""
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "test-scan",
                                                 "ignore_broadcast_ssid": "1" })
@@ -244,13 +227,9 @@ def test_wext_rfkill(dev, apdev):
     wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
     wpas.interface_add("wlan5")
     rfk = get_rfkill(wpas)
-    if rfk is None:
-        return "skip"
     wpas.interface_remove("wlan5")
 
     wpas = get_wext_interface()
-    if not wpas:
-        return "skip"
 
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "open" })
     wpas.connect("open", key_mgmt="NONE", scan_freq="2412")
index 08baeb6ab62fff082c3da30a1763257132a432ca..e66b3f18e94a70dcafc0d82488df4b551d2fa060 100644 (file)
@@ -11,12 +11,12 @@ logger = logging.getLogger()
 
 import hwsim_utils
 from wpasupplicant import WpaSupplicant
+from utils import HwsimSkip
 
-def mesh_supported(dev):
+def check_mesh_support(dev):
     flags = int(dev.get_driver_status_field('capa.flags'), 16)
-    if flags & 0x100000000:
-        return True
-    return False
+    if flags & 0x100000000 == 0:
+        raise HwsimSkip("Driver does not support mesh")
 
 def check_mesh_scan(dev, params, other_started=False, beacon_int=0):
     if not other_started:
@@ -116,8 +116,7 @@ def add_open_mesh_network(dev, ht_mode=False, freq="2412", start=True,
 
 def test_wpas_mesh_group_added(dev):
     """wpa_supplicant MESH group add"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     add_open_mesh_network(dev[0])
 
     # Check for MESH-GROUP-STARTED event
@@ -126,8 +125,7 @@ def test_wpas_mesh_group_added(dev):
 
 def test_wpas_mesh_group_remove(dev):
     """wpa_supplicant MESH group remove"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     add_open_mesh_network(dev[0], ht_mode="NOHT")
     # Check for MESH-GROUP-STARTED event
     check_mesh_group_added(dev[0])
@@ -138,8 +136,7 @@ def test_wpas_mesh_group_remove(dev):
 
 def test_wpas_mesh_peer_connected(dev):
     """wpa_supplicant MESH peer connected"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     add_open_mesh_network(dev[0], ht_mode="HT20", beacon_int=160)
     add_open_mesh_network(dev[1], ht_mode="HT20", beacon_int=160)
 
@@ -154,8 +151,7 @@ def test_wpas_mesh_peer_connected(dev):
 
 def test_wpas_mesh_peer_disconnected(dev):
     """wpa_supplicant MESH peer disconnected"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     add_open_mesh_network(dev[0])
     add_open_mesh_network(dev[1])
 
@@ -175,8 +171,7 @@ def test_wpas_mesh_peer_disconnected(dev):
 
 def test_wpas_mesh_mode_scan(dev):
     """wpa_supplicant MESH scan support"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     add_open_mesh_network(dev[0], ht_mode="HT40+")
     add_open_mesh_network(dev[1], ht_mode="HT40+", beacon_int=175)
 
@@ -189,8 +184,7 @@ def test_wpas_mesh_mode_scan(dev):
 
 def test_wpas_mesh_open(dev, apdev):
     """wpa_supplicant open MESH network connectivity"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     add_open_mesh_network(dev[0], ht_mode="HT40-", freq="2462")
     add_open_mesh_network(dev[1], ht_mode="HT40-", freq="2462")
 
@@ -207,8 +201,7 @@ def test_wpas_mesh_open(dev, apdev):
 
 def test_wpas_mesh_open_no_auto(dev, apdev):
     """wpa_supplicant open MESH network connectivity"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     id = add_open_mesh_network(dev[0], start=False)
     dev[0].set_network(id, "dot11MeshMaxRetries", "16")
     dev[0].set_network(id, "dot11MeshRetryTimeout", "255")
@@ -241,8 +234,7 @@ def add_mesh_secure_net(dev, psk=True):
 
 def test_wpas_mesh_secure(dev, apdev):
     """wpa_supplicant secure MESH network connectivity"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     dev[0].request("SET sae_groups ")
     id = add_mesh_secure_net(dev[0])
     dev[0].mesh_group_add(id)
@@ -264,8 +256,7 @@ def test_wpas_mesh_secure(dev, apdev):
 
 def test_wpas_mesh_secure_sae_group_mismatch(dev, apdev):
     """wpa_supplicant secure MESH and SAE group mismatch"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     addr0 = dev[0].p2p_interface_addr()
     addr1 = dev[1].p2p_interface_addr()
     addr2 = dev[2].p2p_interface_addr()
@@ -316,8 +307,7 @@ def test_wpas_mesh_secure_sae_group_mismatch(dev, apdev):
 
 def test_wpas_mesh_secure_sae_missing_password(dev, apdev):
     """wpa_supplicant secure MESH and missing SAE password"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     id = add_mesh_secure_net(dev[0], psk=False)
     dev[0].set_network(id, "psk", "8f20b381f9b84371d61b5080ad85cac3c61ab3ca9525be5b2d0f4da3d979187a")
     dev[0].mesh_group_add(id)
@@ -333,8 +323,7 @@ def test_wpas_mesh_secure_sae_missing_password(dev, apdev):
 
 def test_wpas_mesh_secure_no_auto(dev, apdev):
     """wpa_supplicant secure MESH network connectivity"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     dev[0].request("SET sae_groups 19")
     id = add_mesh_secure_net(dev[0])
     dev[0].mesh_group_add(id)
@@ -360,8 +349,7 @@ def test_wpas_mesh_secure_no_auto(dev, apdev):
 
 def test_wpas_mesh_ctrl(dev):
     """wpa_supplicant ctrl_iface mesh command error cases"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     if "FAIL" not in dev[0].request("MESH_GROUP_ADD 123"):
         raise Exception("Unexpected MESH_GROUP_ADD success")
     id = dev[0].add_network()
@@ -377,8 +365,7 @@ def test_wpas_mesh_ctrl(dev):
 
 def test_wpas_mesh_dynamic_interface(dev):
     """wpa_supplicant mesh with dynamic interface"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     mesh0 = None
     mesh1 = None
     try:
@@ -455,8 +442,7 @@ def test_wpas_mesh_dynamic_interface(dev):
 
 def test_wpas_mesh_max_peering(dev, apdev):
     """Mesh max peering limit"""
-    if not mesh_supported(dev[0]):
-        return "skip"
+    check_mesh_support(dev[0])
     try:
         dev[0].request("SET max_peer_links 1")