diff mbox series

[01/17] tests: wait for radio work to start after DPP_LISTEN command

Message ID 20230925092039.b9c7d876320b.I41dc7a5a9e9ad2ef63cd773f0fc6fe894a4875ff@changeid
State Accepted
Headers show
Series tests: some scheduling and other fixes | expand

Commit Message

Johannes Berg Sept. 25, 2023, 7:20 a.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

Since DPP listen is a radio work, it doesn't start immediately and
then we can end up missing whatever happens next in the test. Wait
for the radio work to start before continuing the test.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 tests/hwsim/wpasupplicant.py | 9 +++++++++
 1 file changed, 9 insertions(+)
diff mbox series

Patch

diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py
index bd53a1ec0991..2fdaa2c5a711 100644
--- a/tests/hwsim/wpasupplicant.py
+++ b/tests/hwsim/wpasupplicant.py
@@ -1545,6 +1545,15 @@  class WpaSupplicant:
             cmd += " role=" + role
         if "OK" not in self.request(cmd):
             raise Exception("Failed to start listen operation")
+        # Since DPP listen is a radio work, make sure it has started
+        # by the time we return and continue with the test, since it
+        # usually will send something this side should receive.
+        work_started = "dpp-listen@" + self.ifname + ":" + str(freq) + ":1"
+        for i in range(10):
+            if work_started in self.request("RADIO_WORK show"):
+                return
+            time.sleep(0.01)
+        raise Exception("Faield to start DPP listen work")
 
     def dpp_auth_init(self, peer=None, uri=None, conf=None, configurator=None,
                       extra=None, own=None, role=None, neg_freq=None,