tests: Make OVS_APP_EXIT_AND_WAIT() wait for process termination
authorLance Richardson <lrichard@redhat.com>
Wed, 2 Mar 2016 21:40:45 +0000 (16:40 -0500)
committerBen Pfaff <blp@ovn.org>
Fri, 18 Mar 2016 23:53:11 +0000 (16:53 -0700)
Currently OVS_APP_EXIT_AND_WAIT() only waits for the pid file
to be removed.  When using gcov (and likely other utilities),
we need to ensure that the application has actually exited.

Also adding AT_CHECK() around the exit request to allow simplification
of tests using open-coded versions of this macro.

Signed-off-by: Lance Richardson <lrichard@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
tests/ovs-macros.at

index f2923b0..dc7b700 100644 (file)
@@ -135,8 +135,9 @@ dnl
 dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then waits for it
 dnl to exit.
 m4_define([OVS_APP_EXIT_AND_WAIT],
-  [ovs-appctl -t $1 exit
-   OVS_WAIT_WHILE([test -e $1.pid])])
+  [TMPPID=`cat "$OVS_RUNDIR"/$1.pid 2>/dev/null`
+   AT_CHECK([ovs-appctl -t $1 exit])
+   OVS_WAIT_WHILE([kill -0 $TMPPID 2>/dev/null])])
 
 dnl on_exit "COMMAND"
 dnl