tests: make ovn logical router test case more reliable
authorLance Richardson <lrichard@redhat.com>
Mon, 6 Jun 2016 18:03:00 +0000 (14:03 -0400)
committerRussell Bryant <russell@ovn.org>
Tue, 21 Jun 2016 18:04:06 +0000 (14:04 -0400)
The "ovn -- 1 HVs, 2 LSs, 1 lport/LS, 1 LR" test case creates a
configuration including a logical router, then:
    1) Sends a packet that is expected to be forwarded by the
       logical router.
    2) Disables the logical router.
    3) Sends another packet, identical to the one sent in (1), that
       should not be forwarded.

This test case fails intermittently, apparently because the disabling
of the logical router in (2) has not yet been propagated to the
forwarding plane at the time the second packet is sent. (When the
failure occurs, two packets are captured whereas only one is expected.)

Address this issue by adding a one second sleep between steps (2) and
(3). Adding a sleep does not actually fix anything, but it
does make this test case more likely to work correctly.

In one series of tests, this test case failed 11 times out of 20
without this fix and succeeded 20 times out of 20 attempts with
this fix.

Fixes: 5412db307420 ("ovn: Add column enabled to table Logical_Router")
Signed-off-by: Lance Richardson <lrichard@redhat.com>
Signed-off-by: Russell Bryant <russell@ovn.org>
tests/ovn.at

index a24e774..ad20974 100644 (file)
@@ -2320,6 +2320,10 @@ echo "---------------------"
 echo "------ hv1 dump ----------"
 as hv1 ovs-ofctl dump-flows br-int
 
+# Allow some time for the disabling of logical router R1 to propagate.
+# XXX This should be more systematic.
+sleep 1
+
 as hv1 ovs-appctl netdev-dummy/receive vif1 $packet
 
 # Packet to Expect