Until now, the "ovsdb-server/add-remote and remove-remote with --monitor" test killed ovsdb-server with SIGSEGV twice. Each time, the "--monitor" option caused the supervisor process to restart the child, but the second time it incurred a 10-second delay intended to prevent the daemon from wasting CPU time by restarting itself and dying again very quickly in a loop. This made the test take over 10 seconds to execute. It also made it occasionally fail because the OVS_WAIT_UNTIL check waits at most approximately 10 seconds before it decides that the condition that it is testing for will never occur.
This commit fixes the problem by breaking the test into two tests, each of which kills ovsdb-server with SIGSEGV only once. Signed-off-by: Alex Wang <[email protected]> --- tests/ovsdb-server.at | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at index c87d9c4..69ec7a1 100644 --- a/tests/ovsdb-server.at +++ b/tests/ovsdb-server.at @@ -412,7 +412,7 @@ AT_CHECK([test ! -e socket1]) AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/list-remotes]) AT_CLEANUP -AT_SETUP([ovsdb-server/add-remote and remove-remote with --monitor]) +AT_SETUP([ovsdb-server/add-remote with --monitor]) AT_KEYWORDS([ovsdb server positive]) # Start ovsdb-server, initially with no remotes. OVS_RUNDIR=`pwd`; export OVS_RUNDIR @@ -440,6 +440,25 @@ OVS_WAIT_WHILE([kill -0 `cat old.pid`]) OVS_WAIT_UNTIL( [test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`]) OVS_WAIT_UNTIL([test -S socket1]) +AT_CLEANUP + +AT_SETUP([ovsdb-server/add-remote and remove-remote with --monitor]) +AT_KEYWORDS([ovsdb server positive]) +# Start ovsdb-server, initially with no remotes. +OVS_RUNDIR=`pwd`; export OVS_RUNDIR +OVS_LOGDIR=`pwd`; export OVS_LOGDIR +ordinal_schema > schema +AT_CHECK([ovsdb-tool create db schema], [0], [ignore], [ignore]) +ON_EXIT([kill `cat *.pid`]) +AT_CHECK([ovsdb-server -v -vvlog:off --monitor --detach --no-chdir --pidfile --log-file db]) + +# Add a remote. +AT_CHECK([test ! -e socket1]) +AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1]) +OVS_WAIT_UNTIL([test -S socket1]) +AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/list-remotes], + [0], [punix:socket1 +]) # Remove the remote. AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket1]) -- 1.7.9.5 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
