make test: improve handling of packet captures
[vpp.git] / test / test_bfd.py
index b48c3cc..1ea69f5 100644 (file)
@@ -98,7 +98,7 @@ class BFDTestSession(object):
         p = self.create_packet()
         self.test.logger.debug(ppp("Sending packet:", p))
         self.test.pg0.add_stream([p])
-        self.test.pg_start(sleep_time=0)
+        self.test.pg_start()
 
     def verify_packet(self, packet):
         """ Verify correctness of BFD layer. """
@@ -184,10 +184,10 @@ class BFDTestCase(VppTestCase):
         self.pg_enable_capture([self.pg0])
         expected_packets = 3
         self.logger.info("BFD: Waiting for %d BFD packets" % expected_packets)
-        self.wait_for_bfd_packet()
+        self.wait_for_bfd_packet(2)
         for i in range(expected_packets):
             before = time.time()
-            self.wait_for_bfd_packet()
+            self.wait_for_bfd_packet(2)
             after = time.time()
             # spec says the range should be <0.75, 1>, allow extra 0.05 margin
             # to work around timing issues
@@ -198,7 +198,7 @@ class BFDTestCase(VppTestCase):
     def test_zero_remote_min_rx(self):
         """ no packets when zero BFD RemoteMinRxInterval """
         self.pg_enable_capture([self.pg0])
-        p = self.wait_for_bfd_packet()
+        p = self.wait_for_bfd_packet(2)
         self.test_session.update(my_discriminator=randint(0, 40000000),
                                  your_discriminator=p[BFD].my_discriminator,
                                  state=BFDState.init,
@@ -216,7 +216,7 @@ class BFDTestCase(VppTestCase):
     def bfd_session_up(self):
         self.pg_enable_capture([self.pg0])
         self.logger.info("BFD: Waiting for slow hello")
-        p = self.wait_for_bfd_packet()
+        p = self.wait_for_bfd_packet(2)
         self.logger.info("BFD: Sending Init")
         self.test_session.update(my_discriminator=randint(0, 40000000),
                                  your_discriminator=p[BFD].my_discriminator,
@@ -252,14 +252,14 @@ class BFDTestCase(VppTestCase):
         e = self.vapi.wait_for_event(1, "bfd_udp_session_details")
         self.verify_event(e, expected_state=BFDState.down)
 
-    @unittest.skip("this test is not working yet")
     def test_large_required_min_rx(self):
+        """ large remote RequiredMinRxInterval """
         self.bfd_session_up()
-        interval = 5000000
+        interval = 3000000
         self.test_session.update(required_min_rx_interval=interval)
         self.test_session.send_packet()
         now = time.time()
-        count = 1
+        count = 0
         while time.time() < now + interval / 1000000:
             try:
                 p = self.wait_for_bfd_packet()
@@ -268,7 +268,7 @@ class BFDTestCase(VppTestCase):
                 count += 1
             except:
                 pass
-        self.assert_equal(count, 1, "number of packets received")
+        self.assert_in_range(count, 0, 1, "number of packets received")
 
 
 if __name__ == '__main__':