]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Fix DPP capability checking to avoid failures in non-DPP build
authorJouni Malinen <j@w1.fi>
Sun, 26 Jan 2020 11:28:43 +0000 (13:28 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 26 Jan 2020 11:40:56 +0000 (13:40 +0200)
"finally" handler should not trigger a new exception when trying to
clear state for non-DPP builds. In addition, couple of checks for DPP
capability in the build were missing.

Signed-off-by: Jouni Malinen <j@w1.fi>
tests/hwsim/test_dpp.py
tests/hwsim/test_sigma_dut.py
tests/hwsim/wpasupplicant.py

index c5104baac58b9edcd5177ccffa23c600c3841000..96c69280c8eaccc62b56d311e5de63ac6318f2c1 100644 (file)
@@ -1713,14 +1713,14 @@ def test_dpp_auto_connect_1(dev, apdev):
     try:
         run_dpp_auto_connect(dev, apdev, 1)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_2(dev, apdev):
     """DPP and auto connect (2)"""
     try:
         run_dpp_auto_connect(dev, apdev, 2)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_2_connect_cmd(dev, apdev):
     """DPP and auto connect (2) using connect_cmd"""
@@ -1730,7 +1730,7 @@ def test_dpp_auto_connect_2_connect_cmd(dev, apdev):
     try:
         run_dpp_auto_connect(dev_new, apdev, 2)
     finally:
-        wpas.set("dpp_config_processing", "0")
+        wpas.set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_auto_connect(dev, apdev, processing):
     check_dpp_capab(dev[0])
@@ -1777,28 +1777,28 @@ def test_dpp_auto_connect_legacy(dev, apdev):
     try:
         run_dpp_auto_connect_legacy(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_legacy_ssid_charset(dev, apdev):
     """DPP and auto connect (legacy, ssid_charset)"""
     try:
         run_dpp_auto_connect_legacy(dev, apdev, ssid_charset=12345)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_legacy_sae_1(dev, apdev):
     """DPP and auto connect (legacy SAE)"""
     try:
         run_dpp_auto_connect_legacy(dev, apdev, conf='sta-sae', psk_sae=True)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_legacy_sae_2(dev, apdev):
     """DPP and auto connect (legacy SAE)"""
     try:
         run_dpp_auto_connect_legacy(dev, apdev, conf='sta-sae', sae_only=True)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_legacy_psk_sae_1(dev, apdev):
     """DPP and auto connect (legacy PSK+SAE)"""
@@ -1806,7 +1806,7 @@ def test_dpp_auto_connect_legacy_psk_sae_1(dev, apdev):
         run_dpp_auto_connect_legacy(dev, apdev, conf='sta-psk-sae',
                                     psk_sae=True)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_legacy_psk_sae_2(dev, apdev):
     """DPP and auto connect (legacy PSK+SAE)"""
@@ -1814,14 +1814,14 @@ def test_dpp_auto_connect_legacy_psk_sae_2(dev, apdev):
         run_dpp_auto_connect_legacy(dev, apdev, conf='sta-psk-sae',
                                     sae_only=True)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_auto_connect_legacy_psk_sae_3(dev, apdev):
     """DPP and auto connect (legacy PSK+SAE)"""
     try:
         run_dpp_auto_connect_legacy(dev, apdev, conf='sta-psk-sae')
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_auto_connect_legacy(dev, apdev, conf='sta-psk',
                                 ssid_charset=None,
@@ -1870,7 +1870,7 @@ def test_dpp_auto_connect_legacy_pmf_required(dev, apdev):
     try:
         run_dpp_auto_connect_legacy_pmf_required(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_auto_connect_legacy_pmf_required(dev, apdev):
     check_dpp_capab(dev[0])
@@ -2408,21 +2408,21 @@ def test_dpp_own_config(dev, apdev):
     try:
         run_dpp_own_config(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_own_config_group_id(dev, apdev):
     """DPP configurator signing own connector"""
     try:
         run_dpp_own_config(dev, apdev, extra=" group_id=test-group")
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_own_config_curve_mismatch(dev, apdev):
     """DPP configurator signing own connector using mismatching curve"""
     try:
         run_dpp_own_config(dev, apdev, own_curve="BP-384", expect_failure=True)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_own_config(dev, apdev, own_curve=None, expect_failure=False,
                        extra=None):
@@ -2463,21 +2463,21 @@ def test_dpp_own_config_ap(dev, apdev):
     try:
         run_dpp_own_config_ap(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_own_config_ap_group_id(dev, apdev):
     """DPP configurator (AP) signing own connector (group_id)"""
     try:
         run_dpp_own_config_ap(dev, apdev, extra=" group_id=test-group")
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_own_config_ap_reconf(dev, apdev):
     """DPP configurator (AP) signing own connector and configurator reconf"""
     try:
         run_dpp_own_config_ap(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_own_config_ap(dev, apdev, reconf_configurator=False, extra=None):
     check_dpp_capab(dev[0])
@@ -2517,10 +2517,10 @@ def test_dpp_intro_mismatch(dev, apdev):
         check_dpp_capab(wpas)
         run_dpp_intro_mismatch(dev, apdev, wpas)
     finally:
-        dev[0].set("dpp_config_processing", "0")
-        dev[2].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
+        dev[2].set("dpp_config_processing", "0", allow_fail=True)
         if wpas:
-            wpas.set("dpp_config_processing", "0")
+            wpas.set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_intro_mismatch(dev, apdev, wpas):
     check_dpp_capab(dev[0])
@@ -4001,7 +4001,7 @@ def test_dpp_peer_intro_failures(dev, apdev):
     try:
         run_dpp_peer_intro_failures(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_peer_intro_failures(dev, apdev):
     check_dpp_capab(dev[0])
@@ -4229,7 +4229,7 @@ def test_dpp_network_addition_failure(dev, apdev):
     try:
         run_dpp_network_addition_failure(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_network_addition_failure(dev, apdev):
     check_dpp_capab(dev[0])
@@ -4297,6 +4297,7 @@ def test_dpp_conf_file_update(dev, apdev, params):
         f.write("update_config=1\n")
     wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
     wpas.interface_add("wlan5", config=config)
+    check_dpp_capab(wpas)
     wpas.set("dpp_config_processing", "1")
     run_dpp_qr_code_auth_unicast([wpas, dev[1]], apdev, None,
                                  init_extra="conf=sta-dpp",
@@ -4392,7 +4393,7 @@ def test_dpp_legacy_and_dpp_akm(dev, apdev):
     try:
         run_dpp_legacy_and_dpp_akm(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_legacy_and_dpp_akm(dev, apdev):
     check_dpp_capab(dev[0], min_ver=2)
@@ -4472,7 +4473,7 @@ def test_dpp_controller_relay(dev, apdev, params):
     try:
         run_dpp_controller_relay(dev, apdev, params)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
         dev[1].request("DPP_CONTROLLER_STOP")
 
 def run_dpp_controller_relay(dev, apdev, params):
@@ -4700,28 +4701,28 @@ def test_dpp_conn_status_success(dev, apdev):
     try:
         run_dpp_conn_status(dev, apdev)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_conn_status_wrong_passphrase(dev, apdev):
     """DPP connection status - wrong passphrase"""
     try:
         run_dpp_conn_status(dev, apdev, result=2)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_conn_status_no_ap(dev, apdev):
     """DPP connection status - no AP"""
     try:
         run_dpp_conn_status(dev, apdev, result=10)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_conn_status_connector_mismatch(dev, apdev):
     """DPP connection status - invalid Connector"""
     try:
         run_dpp_conn_status(dev, apdev, result=8)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def test_dpp_conn_status_assoc_reject(dev, apdev):
     """DPP connection status - association rejection"""
@@ -4729,7 +4730,7 @@ def test_dpp_conn_status_assoc_reject(dev, apdev):
         dev[0].request("TEST_ASSOC_IE 30020000")
         run_dpp_conn_status(dev, apdev, assoc_reject=True)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_dpp_conn_status(dev, apdev, result=0, assoc_reject=False):
     check_dpp_capab(dev[0], min_ver=2)
@@ -4841,6 +4842,7 @@ def test_dpp_config_save3(dev, apdev, params):
     run_dpp_config_save(dev, apdev, config, "\\u0001*\\u00c2\\u00bc\\u00c3\\u009e\\u00c3\\u00bf", '012ac2bcc39ec3bf')
 
 def run_dpp_config_save(dev, apdev, config, conf_ssid, exp_ssid):
+    check_dpp_capab(dev[1])
     with open(config, "w") as f:
         f.write("update_config=1\n" +
                 "dpp_config_processing=1\n")
index e124511af542efe63464b243639d520f3fdc8745..af26e5969aed16ef09b9fd5109bb2a08224a6cb5 100644 (file)
@@ -1412,6 +1412,7 @@ def test_sigma_dut_dpp_qr_resp_chan_list(dev, apdev):
 
 def test_sigma_dut_dpp_qr_resp_status_query(dev, apdev):
     """sigma_dut DPP/QR responder status query"""
+    check_dpp_capab(dev[1])
     params = hostapd.wpa2_params(ssid="DPPNET01",
                                  passphrase="ThisIsDppPassphrase")
     hapd = hostapd.add_ap(apdev[0], params)
@@ -1420,7 +1421,7 @@ def test_sigma_dut_dpp_qr_resp_status_query(dev, apdev):
         dev[1].set("dpp_config_processing", "2")
         run_sigma_dut_dpp_qr_resp(dev, apdev, 3, status_query=True)
     finally:
-        dev[1].set("dpp_config_processing", "0")
+        dev[1].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_sigma_dut_dpp_qr_resp(dev, apdev, conf_idx, chan_list=None,
                               listen_chan=None, status_query=False):
@@ -2538,7 +2539,7 @@ def test_sigma_dut_dpp_proto_peer_disc_req(dev, apdev):
         if "BootstrapResult,OK,AuthResult,OK,ConfResult,OK,NetworkIntroResult,Errorsent" not in res:
             raise Exception("Unexpected result: " + res)
     finally:
-        dev[0].set("dpp_config_processing", "0")
+        dev[0].set("dpp_config_processing", "0", allow_fail=True)
         stop_sigma_dut(sigma)
 
 def test_sigma_dut_dpp_self_config(dev, apdev):
@@ -2581,7 +2582,7 @@ def test_sigma_dut_ap_dpp_self_config(dev, apdev, params):
             run_sigma_dut_ap_dpp_self_config(dev, apdev)
         finally:
             stop_sigma_dut(sigma)
-            dev[0].set("dpp_config_processing", "0")
+            dev[0].set("dpp_config_processing", "0", allow_fail=True)
 
 def run_sigma_dut_ap_dpp_self_config(dev, apdev):
     check_dpp_capab(dev[0])
index 38ae0920f31c34e9e4f6aaec77ba1a94128e5ba1..47bbb3a1a08d3555d794090a320f1e45085d7627 100644 (file)
@@ -330,8 +330,10 @@ class WpaSupplicant:
         if not self.ping():
             logger.info("No PING response from " + self.ifname + " after reset")
 
-    def set(self, field, value):
+    def set(self, field, value, allow_fail=False):
         if "OK" not in self.request("SET " + field + " " + value):
+            if allow_fail:
+                return
             raise Exception("Failed to set wpa_supplicant parameter " + field)
 
     def add_network(self):