diff options
-rw-r--r-- | test/framework.py | 14 | ||||
-rw-r--r-- | test/test_ip6.py | 14 |
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) |