[PATCH 2/3] tests: Insert sleep after DATA_TEST_FRAME where needed
Benjamin Berg
benjamin at sipsolutions.net
Fri Sep 27 02:36:21 PDT 2024
From: Benjamin Berg <benjamin.berg at intel.com>
If the frame is not fully processed the neighbor entries of the bridge
will not yet be updated. Add a sleep to ensure that the tests are not
racy.
Signed-off-by: Benjamin Berg <benjamin.berg at intel.com>
---
tests/hwsim/test_ap_hs20.py | 13 +++++++++++--
tests/hwsim/test_hs20_filter.py | 6 ++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/tests/hwsim/test_ap_hs20.py b/tests/hwsim/test_ap_hs20.py
index 35cb0b8fe9..8b6359113e 100644
--- a/tests/hwsim/test_ap_hs20.py
+++ b/tests/hwsim/test_ap_hs20.py
@@ -4357,16 +4357,19 @@ def _test_ap_hs20_proxyarp(dev, apdev):
if "OK" not in dev[1].request("DATA_TEST_FRAME " + binascii.hexlify(pkt).decode()):
raise Exception("DATA_TEST_FRAME failed")
+ # Wait for frames to be processed
+ time.sleep(0.1)
+
matches = get_permanent_neighbors("ap-br0")
logger.info("After connect: " + str(matches))
- if len(matches) != 3:
- raise Exception("Unexpected number of neighbor entries after connect")
if 'aaaa:bbbb:cccc::2 dev ap-br0 lladdr 02:00:00:00:00:00 PERMANENT' not in matches:
raise Exception("dev0 addr missing")
if 'aaaa:bbbb:dddd::2 dev ap-br0 lladdr 02:00:00:00:01:00 PERMANENT' not in matches:
raise Exception("dev1 addr(1) missing")
if 'aaaa:bbbb:eeee::2 dev ap-br0 lladdr 02:00:00:00:01:00 PERMANENT' not in matches:
raise Exception("dev1 addr(2) missing")
+ if len(matches) != 3:
+ raise Exception("Unexpected number of neighbor entries after connect")
dev[0].request("DISCONNECT")
dev[1].request("DISCONNECT")
time.sleep(0.5)
@@ -4489,6 +4492,9 @@ def _test_ap_hs20_proxyarp_dgaf(dev, apdev, disabled):
if "OK" not in hapd.request("DATA_TEST_FRAME ifname=ap-br0 " + binascii.hexlify(pkt).decode()):
raise Exception("DATA_TEST_FRAME failed")
+ # Wait for frames to be processed
+ time.sleep(0.1)
+
matches = get_permanent_neighbors("ap-br0")
logger.info("After connect: " + str(matches))
if len(matches) != 2:
@@ -4949,6 +4955,9 @@ def _test_proxyarp_open(dev, apdev, params, ebtables=False):
if "OK" not in hapd.request("DATA_TEST_FRAME ifname=ap-br0 " + binascii.hexlify(pkt).decode()):
raise Exception("DATA_TEST_FRAME failed")
+ # Wait for frames to be processed
+ time.sleep(0.1)
+
macs = get_bridge_macs("ap-br0")
logger.info("After connect (showmacs): " + str(macs))
diff --git a/tests/hwsim/test_hs20_filter.py b/tests/hwsim/test_hs20_filter.py
index 11cf347563..b916da567e 100644
--- a/tests/hwsim/test_hs20_filter.py
+++ b/tests/hwsim/test_hs20_filter.py
@@ -172,6 +172,9 @@ def test_ip4_drop_gratuitous_arp(devs, apdevs, params):
if "OK" not in hapd.request('DATA_TEST_FRAME ' + pkt):
raise Exception("DATA_TEST_FRAME failed")
+ # Wait for frames to be processed
+ time.sleep(0.1)
+
if hapd.own_addr() in subprocess.check_output(['ip', 'neigh', 'show']).decode():
raise Exception("gratuitous ARP frame updated erroneously")
finally:
@@ -199,6 +202,9 @@ def test_ip6_drop_unsolicited_na(devs, apdevs, params):
if "OK" not in hapd.request('DATA_TEST_FRAME ' + pkt):
raise Exception("DATA_TEST_FRAME failed")
+ # Wait for frames to be processed
+ time.sleep(0.1)
+
if hapd.own_addr() in subprocess.check_output(['ip', 'neigh', 'show']).decode():
raise Exception("unsolicited NA frame updated erroneously")
finally:
--
2.46.1
More information about the Hostap
mailing list