From d9052150eb80f88c9e0b3ea0c0de1e86820e0a62 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 4 Oct 2015 11:46:02 +0300 Subject: [PATCH] tests: wpa_supplicant control socket and event burst Signed-off-by: Jouni Malinen --- tests/hwsim/test_wpas_ctrl.py | 24 ++++++++++++++++++++++++ tests/hwsim/wpasupplicant.py | 5 +++++ 2 files changed, 29 insertions(+) diff --git a/tests/hwsim/test_wpas_ctrl.py b/tests/hwsim/test_wpas_ctrl.py index de7cde49e..99fde193a 100644 --- a/tests/hwsim/test_wpas_ctrl.py +++ b/tests/hwsim/test_wpas_ctrl.py @@ -1757,3 +1757,27 @@ def test_wpas_ctrl_socket_full(dev, apdev, test_params): if not dev[0].ping(): raise Exception("Could not ping wpa_supplicant at the end of the test") dev[0].get_status() + +def test_wpas_ctrl_event_burst(dev, apdev): + """wpa_supplicant control socket and event burst""" + if "OK" not in dev[0].request("EVENT_TEST 1000"): + raise Exception("Could not request event messages") + + total_i = 0 + total_g = 0 + for i in range(100): + (i,g) = dev[0].dump_monitor() + total_i += i + total_g += g + logger.info("Received i=%d g=%d" % (i, g)) + if total_i >= 1000 and total_g >= 1000: + break + time.sleep(0.05) + + if total_i < 1000: + raise Exception("Some per-interface events not seen: %d" % total_i) + if total_g < 1000: + raise Exception("Some global events not seen: %d" % total_g) + + if not dev[0].ping(): + raise Exception("Could not ping wpa_supplicant at the end of the test") diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index 8e79c8b00..1dab60af7 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -688,12 +688,17 @@ class WpaSupplicant: raise Exception("Unexpected group removal reason") def dump_monitor(self): + count_iface = 0 + count_global = 0 while self.mon.pending(): ev = self.mon.recv() logger.debug(self.ifname + ": " + ev) + count_iface += 1 while self.global_mon and self.global_mon.pending(): ev = self.global_mon.recv() logger.debug(self.ifname + "(global): " + ev) + count_global += 1 + return (count_iface, count_global) def remove_group(self, ifname=None): if self.gctrl_mon: