aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/framework.py14
-rw-r--r--test/test_ip6.py14
2 files changed, 21 insertions, 7 deletions
diff --git a/test/framework.py b/test/framework.py
index 62b99e582ca..aad5173a55a 100644
--- a/test/framework.py
+++ b/test/framework.py
@@ -754,6 +754,20 @@ class VppTestCase(unittest.TestCase):
cls._captures.append((time.time(), cap_name))
@classmethod
+ def get_vpp_time(cls):
+ return float(cls.vapi.cli('show clock').replace("Time now ", ""))
+
+ @classmethod
+ def sleep_on_vpp_time(cls, sec):
+ """ Sleep according to time in VPP world """
+ # On a busy system with many processes
+ # we might end up with VPP time being slower than real world
+ # So take that into account when waiting for VPP to do something
+ start_time = cls.get_vpp_time()
+ while cls.get_vpp_time() - start_time < sec:
+ cls.sleep(0.1)
+
+ @classmethod
def pg_start(cls):
""" Enable the PG, wait till it is done, then clean up """
cls.vapi.cli("trace add pg-input 1000")
diff --git a/test/test_ip6.py b/test/test_ip6.py
index 7c43544286d..a8a730c615c 100644
--- a/test/test_ip6.py
+++ b/test/test_ip6.py
@@ -1299,7 +1299,7 @@ class TestIPv6RDControlPlane(TestIPv6ND):
self.pg0.add_stream([packet])
self.pg_start()
- self.sleep(0.1)
+ self.sleep_on_vpp_time(0.1)
fib = self.vapi.ip_route_dump(0, True)
@@ -1323,21 +1323,21 @@ class TestIPv6RDControlPlane(TestIPv6ND):
self.pg0.add_stream([packet])
self.pg_start()
- self.sleep(0.1)
+ self.sleep_on_vpp_time(0.1)
# check that default route is deleted
fib = self.vapi.ip_route_dump(0, True)
default_routes = self.get_default_routes(fib)
self.assertEqual(len(default_routes), 0)
- self.sleep(0.1)
+ self.sleep_on_vpp_time(0.1)
# send RA
packet = self.create_ra_packet(self.pg0)
self.pg0.add_stream([packet])
self.pg_start()
- self.sleep(0.1)
+ self.sleep_on_vpp_time(0.1)
# check FIB for new default route
fib = self.vapi.ip_route_dump(0, True)
@@ -1352,7 +1352,7 @@ class TestIPv6RDControlPlane(TestIPv6ND):
self.pg0.add_stream([packet])
self.pg_start()
- self.sleep(0.1)
+ self.sleep_on_vpp_time(0.1)
# check that default route still exists
fib = self.vapi.ip_route_dump(0, True)
@@ -1362,7 +1362,7 @@ class TestIPv6RDControlPlane(TestIPv6ND):
self.assertEqual(dr['sw_if_index'], self.pg0.sw_if_index)
self.assertEqual(dr['next_hop'], router_address)
- self.sleep(1)
+ self.sleep_on_vpp_time(1)
# check that default route is deleted
fib = self.vapi.ip_route_dump(0, True)
@@ -1378,7 +1378,7 @@ class TestIPv6RDControlPlane(TestIPv6ND):
strict=False)
self.assertEqual(prefix, IPv6Network(text_type('1::/20')))
- self.sleep(1)
+ self.sleep_on_vpp_time(1)
# check that SLAAC address is deleted
fib = self.vapi.ip_route_dump(0, True)