summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@opensourcerouting.org>2019-07-18 10:56:50 -0300
committerRafael Zalamena <rzalamena@opensourcerouting.org>2019-07-23 10:26:15 -0300
commit2a76b0a8e24d291b2331a4dd05e70a80ef57426b (patch)
tree723ee60eb5531984ca29929971cf8083056e42c4
parentdfd15ebfa6b648cedc340bc46f41a3bbb5076440 (diff)
topotest: fix Lou's framework command wait
Fix two main issues: * Don't use float to figure out if we spent the time user asked; * Don't depend on system clock to find we reached the end of time; The fix is basically pre caculating the amount of wait cycles we are going to peform and use a counter. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
-rwxr-xr-xtests/topotests/lib/lutil.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/tests/topotests/lib/lutil.py b/tests/topotests/lib/lutil.py
index d3a275d118..bd26dec67e 100755
--- a/tests/topotests/lib/lutil.py
+++ b/tests/topotests/lib/lutil.py
@@ -22,6 +22,7 @@ import sys
import time
import datetime
import json
+import math
from topolog import logger
from mininet.net import Mininet
@@ -248,14 +249,18 @@ Total %-4d %-4d %d\n\
found = False
n = 0
startt = time.time()
- delta = time.time() - startt
- while delta < wait and found is False:
+
+ # Calculate the amount of `sleep`s we are going to peform.
+ wait_count = int(math.ceil(wait / 0.5))
+
+ while wait_count > 0 and found is False:
found = self.command(target, command, regexp, op, result, returnJson)
+ wait_count -= 1
n+=1
- delta = time.time() - startt
- self.log('\tFound: %s n: %s delta: %s and wait: %s' % (found, n, delta, wait))
- if delta < wait and found is False:
+ if wait_count > 0 and found is False:
time.sleep (0.5)
+
+ delta = time.time() - startt
self.log('Done after %d loops, time=%s, Found=%s' % (n, delta, found))
found = self.command(target, command, regexp, 'pass', '%s +%4.2f secs' % (result, delta), returnJson)
return found