summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Tammela <pctammela@mojatatu.com>2023-11-17 14:12:07 -0300
committerJakub Kicinski <kuba@kernel.org>2023-11-20 18:06:36 -0800
commit4b480cfb1066a8394017697ff4a58a970641e9b7 (patch)
treedda0910f74fb357aeb47153bc166e09e1f138abf
parent3f2d94a4ff489ebbc6b66cc33f9775cb33c00533 (diff)
downloadlinux-4b480cfb1066a8394017697ff4a58a970641e9b7.tar.gz
linux-4b480cfb1066a8394017697ff4a58a970641e9b7.tar.bz2
linux-4b480cfb1066a8394017697ff4a58a970641e9b7.zip
selftests: tc-testing: timeout on unbounded loops
In the spirit of failing early, timeout on unbounded loops that take longer than 20 ticks to complete. Such loops are to ensure that objects created are already visible so tests can proceed without any issues. If a test setup takes more than 20 ticks to see an object, there's definetely something wrong. Signed-off-by: Pedro Tammela <pctammela@mojatatu.com> Reviewed-by: Simon Horman <horms@kernel.org> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Link: https://lore.kernel.org/r/20231117171208.2066136-6-pctammela@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--tools/testing/selftests/tc-testing/plugin-lib/nsPlugin.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/testing/selftests/tc-testing/plugin-lib/nsPlugin.py b/tools/testing/selftests/tc-testing/plugin-lib/nsPlugin.py
index 7b674befceec..65c8f3f983b9 100644
--- a/tools/testing/selftests/tc-testing/plugin-lib/nsPlugin.py
+++ b/tools/testing/selftests/tc-testing/plugin-lib/nsPlugin.py
@@ -40,7 +40,10 @@ class SubPlugin(TdcPlugin):
self._ns_create()
# Make sure the netns is visible in the fs
+ ticks = 20
while True:
+ if ticks == 0:
+ raise TimeoutError
self._proc_check()
try:
ns = self.args.NAMES['NS']
@@ -49,6 +52,7 @@ class SubPlugin(TdcPlugin):
break
except:
time.sleep(0.1)
+ ticks -= 1
continue
def pre_case(self, test, test_skip):
@@ -127,7 +131,10 @@ class SubPlugin(TdcPlugin):
with IPRoute() as ip:
ip.link('add', ifname=dev1, kind='veth', peer={'ifname': dev0, 'net_ns_fd':'/proc/1/ns/net'})
ip.link('add', ifname=dummy, kind='dummy')
+ ticks = 20
while True:
+ if ticks == 0:
+ raise TimeoutError
try:
dev1_idx = ip.link_lookup(ifname=dev1)[0]
dummy_idx = ip.link_lookup(ifname=dummy)[0]
@@ -136,17 +143,22 @@ class SubPlugin(TdcPlugin):
break
except:
time.sleep(0.1)
+ ticks -= 1
continue
netns.popns()
with IPRoute() as ip:
+ ticks = 20
while True:
+ if ticks == 0:
+ raise TimeoutError
try:
dev0_idx = ip.link_lookup(ifname=dev0)[0]
ip.link('set', index=dev0_idx, state='up')
break
except:
time.sleep(0.1)
+ ticks -= 1
continue
def _ns_create_cmds(self):