From 44b7b9178b22fa0da1c9b0773e7f0b78f7303ade Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 28 Jan 2024 20:59:09 +0100 Subject: [PATCH] test: dbus: Wait for connection before disconnect 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 --- tests/hwsim/test_dbus.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/hwsim/test_dbus.py b/tests/hwsim/test_dbus.py index 4dee2277b..c16f59d53 100644 --- a/tests/hwsim/test_dbus.py +++ b/tests/hwsim/test_dbus.py @@ -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() -- 2.47.2