]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
test: dbus: Wait for connection before disconnect
authorJohannes Berg <johannes.berg@intel.com>
Sun, 28 Jan 2024 19:59:09 +0000 (20:59 +0100)
committerJouni Malinen <j@w1.fi>
Mon, 29 Jan 2024 09:05:31 +0000 (11:05 +0200)
The test here wants to connect and then disconnect again, but it's
driven only by the GO side, so the client may end up (with UML
time-travel) not fully connecting, and then it all fails. Wait for the
client to have connected first.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
tests/hwsim/test_dbus.py

index 4dee2277bd781408ddb69568020bf6581af3defb..c16f59d53f5906529d3105663da887fe94042bd8 100644 (file)
@@ -3940,6 +3940,7 @@ def test_dbus_p2p_autogo_pbc(dev, apdev):
             self.first = True
             self.waiting_end = False
             self.done = False
+            self.dev1 = WpaSupplicant('wlan1', '/tmp/wpas-wlan1')
 
         def __enter__(self):
             gobject.timeout_add(1, self.run_test)
@@ -3963,12 +3964,12 @@ def test_dbus_p2p_autogo_pbc(dev, apdev):
             self.group = properties['group_object']
             self.g_if_obj = bus.get_object(WPAS_DBUS_SERVICE,
                                            properties['interface_object'])
-            dev1 = WpaSupplicant('wlan1', '/tmp/wpas-wlan1')
-            dev1.global_request("P2P_CONNECT " + addr0 + " pbc join")
+            self.dev1.global_request("P2P_CONNECT " + addr0 + " pbc join")
 
         def groupFinished(self, properties):
             logger.debug("groupFinished: " + str(properties))
             self.done = True
+            self.dev1 = None
             self.loop.quit()
 
         def deviceFound(self, path):
@@ -3993,6 +3994,9 @@ def test_dbus_p2p_autogo_pbc(dev, apdev):
 
         def staAuthorized(self, name):
             logger.debug("staAuthorized: " + name)
+            # wait for client to be fully connected
+            self.dev1.wait_connected()
+            # so we can cleanly disconnect it now
             group_p2p = dbus.Interface(self.g_if_obj,
                                        WPAS_DBUS_IFACE_P2PDEVICE)
             group_p2p.Disconnect()