[PATCH] tests: query carrier before data test
Johannes Berg
johannes at sipsolutions.net
Tue Dec 12 00:07:02 PST 2023
From: Johannes Berg <johannes.berg at intel.com>
The kernel has an asynchronous work to enable TX, which
hasn't always run by the time we get to TX tests. Do a
sysfs read from the carrier file before TX, on newer
kernels this synchronises the needed state.
Signed-off-by: Johannes Berg <johannes.berg at intel.com>
---
tests/hwsim/hwsim_utils.py | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/tests/hwsim/hwsim_utils.py b/tests/hwsim/hwsim_utils.py
index eb312bf96b2b..da4606e6ca4e 100644
--- a/tests/hwsim/hwsim_utils.py
+++ b/tests/hwsim/hwsim_utils.py
@@ -11,6 +11,24 @@ logger = logging.getLogger()
from wpasupplicant import WpaSupplicant
+def _sync_carrier(dev, ifname):
+ ifname = ifname or dev.ifname
+ carrier_p2p = None
+ try:
+ with open(f'/sys/class/net/{ifname}/carrier', 'r') as f:
+ carrier_main = f.read().strip() == '1'
+ except FileNotFoundError:
+ return
+ if (isinstance(dev, WpaSupplicant) and dev.group_ifname and
+ dev.group_ifname != ifname):
+ ifname = dev.group_ifname
+ try:
+ with open(f'/sys/class/net/{ifname}/carrier', 'r') as f:
+ carrier_p2p = f.read().strip() == '1'
+ except FileNotFoundError:
+ pass
+ assert carrier_main or carrier_p2p, "sending data w/o carrier won't work"
+
def config_data_test(dev1, dev2, dev1group, dev2group, ifname1, ifname2):
cmd = "DATA_TEST_CONFIG 1"
if ifname1:
@@ -22,6 +40,8 @@ def config_data_test(dev1, dev2, dev1group, dev2group, ifname1, ifname2):
if "OK" not in res:
raise Exception("Failed to enable data test functionality")
+ _sync_carrier(dev1, ifname1)
+
cmd = "DATA_TEST_CONFIG 1"
if ifname2:
cmd = cmd + " ifname=" + ifname2
@@ -32,6 +52,8 @@ def config_data_test(dev1, dev2, dev1group, dev2group, ifname1, ifname2):
if "OK" not in res:
raise Exception("Failed to enable data test functionality")
+ _sync_carrier(dev2, ifname2)
+
def run_multicast_connectivity_test(dev1, dev2, tos=None,
dev1group=False, dev2group=False,
ifname1=None, ifname2=None,
--
2.43.0
More information about the Hostap
mailing list