From: Jouni Malinen Date: Sun, 17 Mar 2019 14:00:18 +0000 (+0200) Subject: tests: Split event wait in grpform_cred_ready_timeout X-Git-Tag: hostap_2_8~193 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a88b7e6e9ab8e48f8f8d4bdf00c592d4aae5d75;p=thirdparty%2Fhostap.git tests: Split event wait in grpform_cred_ready_timeout The long wait for the monitor socket events resulted in another socket running out of TX buffer space. Split the wait into smaller segments and clear the other socket in each iteration. Signed-off-by: Jouni Malinen --- diff --git a/tests/hwsim/test_p2p_grpform.py b/tests/hwsim/test_p2p_grpform.py index 41104d515..47882cce2 100644 --- a/tests/hwsim/test_p2p_grpform.py +++ b/tests/hwsim/test_p2p_grpform.py @@ -1,5 +1,5 @@ # P2P group formation test cases -# Copyright (c) 2013-2014, Jouni Malinen +# Copyright (c) 2013-2019, Jouni Malinen # # This software may be distributed under the terms of the BSD license. # See README for more details. @@ -766,7 +766,11 @@ def test_grpform_cred_ready_timeout(dev, apdev, params): dev[2].dump_monitor() logger.info("Starting p2p_find to change state") dev[2].p2p_find() - ev = dev[2].wait_global_event(["P2P-GO-NEG-FAILURE"], timeout=100) + for i in range(10): + ev = dev[2].wait_global_event(["P2P-GO-NEG-FAILURE"], timeout=10) + if ev: + break + dev[2].dump_monitor(global_mon=False) if ev is None: raise Exception("GO Negotiation failure timed out(2)") dev[2].dump_monitor() @@ -785,7 +789,10 @@ def test_grpform_cred_ready_timeout(dev, apdev, params): if wpas.p2p_dev_addr() not in ev: raise Exception("Unexpected device found: " + ev) dev[2].p2p_stop_find() + dev[2].dump_monitor() wpas.p2p_stop_find() + wpas.close_monitor() + del wpas # Finally, verify without p2p_find ev = dev[0].wait_global_event(["P2P-GO-NEG-FAILURE"], timeout=120) diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index 125867ef9..00dec57b3 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -884,14 +884,14 @@ class WpaSupplicant: if "reason=GO_ENDING_SESSION" not in ev: raise Exception("Unexpected group removal reason") - def dump_monitor(self): + def dump_monitor(self, mon=True, global_mon=True): count_iface = 0 count_global = 0 - while self.monitor and self.mon.pending(): + while mon and self.monitor and self.mon.pending(): ev = self.mon.recv() logger.debug(self.dbg + ": " + ev) count_iface += 1 - while self.monitor and self.global_mon and self.global_mon.pending(): + while global_mon and self.monitor and self.global_mon and self.global_mon.pending(): ev = self.global_mon.recv() logger.debug(self.global_dbg + self.ifname + "(global): " + ev) count_global += 1