summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndy Zhou <azhou@ovn.org>2017-05-16 18:51:39 -0700
committerAndy Zhou <azhou@ovn.org>2017-05-17 13:50:50 -0700
commita1a23d9a576e234aa93087f83d235ac373c3e2f4 (patch)
tree556f3b18d7f328c7a0dd86cd4d26911bdec51008 /tests
parent73e8c580eef4651370938fb9355d0b6fd8b3f54a (diff)
downloadopenvswitch-a1a23d9a576e234aa93087f83d235ac373c3e2f4.tar.gz
tests: Fix timing dependency bridge - multiple bridges share a controller
Without the fix, this test currently consistently fail when running on Travis CI. Connecting to the controller can take more time than running locally. Because the exact connecting time is variable, the exact output should not be used for correctness checking. Fixes: 85c55772a453(bridge: Fix controller status update) Signed-off-by: Andy Zhou <azhou@ovn.org> Acked-by: Joe Stringer <joe@ovn.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/bridge.at23
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/bridge.at b/tests/bridge.at
index 58b27d445..cc7619d3f 100644
--- a/tests/bridge.at
+++ b/tests/bridge.at
@@ -49,23 +49,30 @@ OVS_VSWITCHD_START(
dnl Start ovs-testcontroller
AT_CHECK([ovs-testcontroller --detach punix:controller], [0], [ignore])
+OVS_WAIT_UNTIL([test -e controller])
dnl Add the controller to both bridges, 5 seconds apart.
AT_CHECK([ovs-vsctl set-controller br0 unix:controller])
+AT_CHECK([ovs-vsctl set-fail-mode br0 secure])
AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore])
AT_CHECK([ovs-vsctl set-controller br1 unix:controller])
+AT_CHECK([ovs-vsctl set-fail-mode br1 secure])
-dnl Wait for the controller connection to come up
-for i in `seq 0 7`
+dnl Wait for the controller connectionsi to be up
+for i in `seq 0 19`
do
- AT_CHECK([ovs-appctl time/warp 10], [0], [ignore])
+ if ovs-vsctl --column=is_connected list controller |grep "false"; then
+ :
+ else
+ break
+ fi
+ ovs-appctl time/warp 1100
done
-dnl Make sure the connection status are different
-AT_CHECK([ovs-vsctl --columns=status list controller | sort], [0], [dnl
-
-status : {sec_since_connect="0", state=ACTIVE}
-status : {sec_since_connect="5", state=ACTIVE}
+dnl Make sure the connection status have two records and they are different.
+dnl (The exact output contains timing information that are machine dependent.)
+AT_CHECK([ovs-vsctl --column=status list controller | dnl
+ grep "status" | sort -u |wc -l], [0], [2
])
OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])