summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLance Richardson <lrichard@redhat.com>2016-06-10 12:17:57 -0400
committerBen Pfaff <blp@ovn.org>2016-06-23 16:05:10 -0700
commit8a16ab90b27ca28fbc5e8a42a02eb8c7133183ae (patch)
tree8a4ed8f80a80f3281465ec13aacdc2d17b634283 /tests
parent42814145d70c77462ce28b38841cd160f0486776 (diff)
downloadopenvswitch-8a16ab90b27ca28fbc5e8a42a02eb8c7133183ae.tar.gz
tests: Fix issue in use of OVS_APP_EXIT_AND_WAIT.
Commit f9b11f2a09b4 introduced a loop to wait for process exit in OVS_APP_EXIT_AND_WAIT after the "exit" command has been sent. Unfortunately, this does not work for cases where a unixctl socket has to be used to send the "exit" command because the process ID cannot be determined from the socket path. OVS_APP_EXIT_AND_WAIT_BY_TARGET has since been introduced to enable graceful termination of daemons via unixctl sockets. This set of changes addresses the problem described above by making OVS_APP_EXIT_AND_WAIT_BY_TARGET take the unixctl socket path and corresponding process ID as separate parameters. In order to better detect issues in this logic in the future, checks have been added to verify that the pidfile exists before using its contents. Tested on a Linux system. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/daemon.at2
-rw-r--r--tests/ovn-controller.at5
-rw-r--r--tests/ovn-sbctl.at8
-rw-r--r--tests/ovs-macros.at16
-rw-r--r--tests/ovs-vsctl.at2
-rw-r--r--tests/ovs-vswitchd.at15
-rw-r--r--tests/ovsdb-idl.at42
-rw-r--r--tests/ovsdb-monitor.at2
-rw-r--r--tests/ovsdb-server.at2
9 files changed, 50 insertions, 44 deletions
diff --git a/tests/daemon.at b/tests/daemon.at
index 962169a77..8f8898729 100644
--- a/tests/daemon.at
+++ b/tests/daemon.at
@@ -92,7 +92,7 @@ if test "$IS_WIN32" = "yes"; then
# When a 'kill pid' is done on windows (through 'taskkill //F'),
# pidfiles are not deleted (because it is force kill), so use
# 'ovs-appctl exit' instead
- OVS_APP_EXIT_AND_WAIT([`pwd`/unixctl])
+ OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/unixctl], [`pwd`/pid])
else
kill `cat pid`
fi
diff --git a/tests/ovn-controller.at b/tests/ovn-controller.at
index d6daa24bb..b20a746db 100644
--- a/tests/ovn-controller.at
+++ b/tests/ovn-controller.at
@@ -127,7 +127,8 @@ check_patches \
on_exit 'kill `cat $ovs_base/ovn-sb/ovsdb-server-2.pid`'
ovsdb-tool create $ovs_base/ovn-sb/ovn-sb1.db "$abs_top_srcdir"/ovn/ovn-sb.ovsschema
-as ovn-sb ovsdb-server --detach --pidfile=$ovs_base/ovn-sb/ovsdb-server-2.pid --remote=punix:$ovs_base/ovn-sb/ovn-sb1.sock $ovs_base/ovn-sb/ovn-sb1.db
+as ovn-sb ovsdb-server --detach --pidfile=$ovs_base/ovn-sb/ovsdb-server-2.pid --remote=punix:$ovs_base/ovn-sb/ovn-sb1.sock $ovs_base/ovn-sb/ovn-sb1.db \
+ --unixctl=$ovs_base/ovn-sb/ovsdb-server-2.ctl
AT_CHECK([ovs-vsctl -- set Open_vSwitch . external-ids:ovn-remote=unix:$ovs_base/ovn-sb/ovn-sb1.sock])
check_patches
AT_CHECK([ovs-vsctl -- set Open_vSwitch . external-ids:ovn-remote=unix:$ovs_base/ovn-sb/ovn-sb.sock])
@@ -153,7 +154,7 @@ OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
OVS_APP_EXIT_AND_WAIT([ovsdb-server])
as ovn-sb
-OVS_APP_EXIT_AND_WAIT_BY_TARGET([ovsdb-server-2])
+OVS_APP_EXIT_AND_WAIT_BY_TARGET([$ovs_base/ovn-sb/ovsdb-server-2.ctl], [$ovs_base/ovn-sb/ovsdb-server-2.pid])
OVS_APP_EXIT_AND_WAIT([ovsdb-server])
AT_CLEANUP
diff --git a/tests/ovn-sbctl.at b/tests/ovn-sbctl.at
index efdc8e2cb..523293341 100644
--- a/tests/ovn-sbctl.at
+++ b/tests/ovn-sbctl.at
@@ -9,8 +9,8 @@ m4_define([OVN_SBCTL_TEST_START],
done
dnl Start ovsdb-servers.
- AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=$OVS_RUNDIR/ovnnb_db.pid --log-file=$OVS_RUNDIR/ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db ], [0], [], [stderr])
- AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=$OVS_RUNDIR/ovnsb_db.pid --log-file=$OVS_RUNDIR/ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db], [0], [], [stderr])
+ AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=$OVS_RUNDIR/ovnnb_db.pid --unixctl=$OVS_RUNDIR/ovnnb_db.ctl --log-file=$OVS_RUNDIR/ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db ], [0], [], [stderr])
+ AT_CHECK([ovsdb-server --detach --no-chdir --pidfile=$OVS_RUNDIR/ovnsb_db.pid --unixctl=$OVS_RUNDIR/ovnsb_db.ctl --log-file=$OVS_RUNDIR/ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db], [0], [], [stderr])
on_exit "kill `cat ovnnb_db.pid` `cat ovnsb_db.pid`"
AT_CHECK([[sed < stderr '
/vlog|INFO|opened log file/d
@@ -37,8 +37,8 @@ m4_define([OVN_SBCTL_TEST_STOP],
AT_CHECK([check_logs "$1
/Broken pipe/d"])
OVS_APP_EXIT_AND_WAIT([ovn-northd])
- OVS_APP_EXIT_AND_WAIT_BY_TARGET([ovnnb_db])
- OVS_APP_EXIT_AND_WAIT_BY_TARGET([ovnsb_db])])
+ OVS_APP_EXIT_AND_WAIT_BY_TARGET([$OVS_RUNDIR/ovnnb_db.ctl], [$OVS_RUNDIR/ovnnb_db.pid])
+ OVS_APP_EXIT_AND_WAIT_BY_TARGET([$OVS_RUNDIR/ovnsb_db.ctl], [$OVS_RUNDIR/ovnsb_db.pid])])
dnl ---------------------------------------------------------------------
diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at
index e5710a07c..fadd2be1b 100644
--- a/tests/ovs-macros.at
+++ b/tests/ovs-macros.at
@@ -132,20 +132,22 @@ m4_define([OVS_WAIT_WHILE],
dnl OVS_APP_EXIT_AND_WAIT(DAEMON)
dnl
-dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then waits for it
+dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then wait for it
dnl to exit.
m4_define([OVS_APP_EXIT_AND_WAIT],
- [TMPPID=$(cat "$OVS_RUNDIR"/$1.pid 2>/dev/null)
+ [AT_CHECK([test -e $OVS_RUNDIR/$1.pid])
+ TMPPID=$(cat $OVS_RUNDIR/$1.pid)
AT_CHECK([ovs-appctl -t $1 exit])
OVS_WAIT_WHILE([kill -0 $TMPPID 2>/dev/null])])
-dnl OVS_APP_EXIT_AND_WAIT_BY_TARGET(DAEMON)
+dnl OVS_APP_EXIT_AND_WAIT_BY_TARGET(TARGET, PIDFILE)
dnl
-dnl Ask the daemon named DAEMON to exit, via ovs-appctl (using the target
-dnl argument), and then waits for it to exit.
+dnl Ask the daemon identified by TARGET to exit, via ovs-appctl (using the target
+dnl argument), and then wait for it to exit.
m4_define([OVS_APP_EXIT_AND_WAIT_BY_TARGET],
- [TMPPID=`cat "$OVS_RUNDIR"/$1.pid 2>/dev/null`
- AT_CHECK([ovs-appctl --target=$OVS_RUNDIR/ovsdb-server.$TMPPID.ctl exit])
+ [AT_CHECK([test -e $2])
+ TMPPID=$(cat $2)
+ AT_CHECK([ovs-appctl --target=$1 exit])
OVS_WAIT_WHILE([kill -0 $TMPPID 2>/dev/null])])
dnl on_exit "COMMAND"
diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
index ac8749a70..51717869b 100644
--- a/tests/ovs-vsctl.at
+++ b/tests/ovs-vsctl.at
@@ -9,7 +9,7 @@ m4_define([OVS_VSCTL_SETUP],
dnl OVS_VSCTL_CLEANUP
dnl
dnl Kills off the database server.
-m4_define([OVS_VSCTL_CLEANUP], [OVS_APP_EXIT_AND_WAIT(["`pwd`"/unixctl])])
+m4_define([OVS_VSCTL_CLEANUP], [OVS_APP_EXIT_AND_WAIT_BY_TARGET(["`pwd`"/unixctl], ["`pwd`"/pid])])
dnl RUN_OVS_VSCTL(COMMAND, ...)
dnl
diff --git a/tests/ovs-vswitchd.at b/tests/ovs-vswitchd.at
index 816d0a20c..e34e05e5a 100644
--- a/tests/ovs-vswitchd.at
+++ b/tests/ovs-vswitchd.at
@@ -70,13 +70,14 @@ AT_SETUP([ovs-vswitchd -- start additional ovs-vswitchd process])
OVS_VSWITCHD_START
# start another ovs-vswitchd process.
-ovs-vswitchd --log-file=fakelog --unixctl="`pwd`"/unixctl &
+ovs-vswitchd --log-file=fakelog --unixctl="`pwd`"/unixctl --pidfile=`pwd`/ovs-vswitchd-2.pid &
+on_exit 'kill `cat ovs-vswitchd-2.pid`'
# sleep for a while
sleep 5
# stop the process.
-OVS_APP_EXIT_AND_WAIT([`pwd`/unixctl])
+OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/unixctl], [`pwd`/ovs-vswitchd-2.pid])
# check the fakelog, should only see one ERR for reporting
# the existing ovs-vswitchd process.
@@ -94,7 +95,8 @@ AT_SETUP([ovs-vswitchd -- switch over to another ovs-vswitchd process])
OVS_VSWITCHD_START
# start a new ovs-vswitchd process.
-ovs-vswitchd --log-file=fakelog --enable-dummy --unixctl="`pwd`"/unixctl &
+ovs-vswitchd --log-file=fakelog --enable-dummy --unixctl="`pwd`"/unixctl --pidfile=ovs-vswitchd-2.pid &
+on_exit 'kill `cat ovs-vswitchd-2.pid`'
# sleep for a while.
sleep 5
@@ -112,7 +114,7 @@ bridge br0: using datapath ID
])
# stop the process.
-OVS_APP_EXIT_AND_WAIT([`pwd`/unixctl])
+OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/unixctl], [ovs-vswitchd-2.pid])
# check the fakelog, should not see WARN/ERR/EMER log other than the one
# for reporting the existing ovs-vswitchd process and the one for killing
@@ -132,13 +134,14 @@ dnl ----------------------------------------------------------------------
AT_SETUP([ovs-vswitchd -- invalid database path])
# start an ovs-vswitchd process with invalid db path.
-ovs-vswitchd unix:invalid.db.sock --log-file=fakelog --enable-dummy --unixctl="`pwd`"/unixctl &
+ovs-vswitchd unix:invalid.db.sock --log-file=fakelog --enable-dummy --unixctl="`pwd`"/unixctl --pidfile=ovs-vswitchd-2.pid &
+on_exit 'kill `cat ovs-vswitchd-2.pid`'
# sleep for a while.
sleep 10
# stop the process.
-OVS_APP_EXIT_AND_WAIT([`pwd`/unixctl])
+OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/unixctl], [ovs-vswitchd-2.pid])
# should not see this log (which indicates high cpu utilization).
AT_CHECK([grep "wakeup due to" fakelog], [ignore])
diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at
index 057d09f6f..cda0f795a 100644
--- a/tests/ovsdb-idl.at
+++ b/tests/ovsdb-idl.at
@@ -21,8 +21,8 @@ m4_define([OVSDB_CHECK_IDL_C],
AT_KEYWORDS([ovsdb server idl positive $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
m4_if([$2], [], [],
[AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])])
AT_CHECK([test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket $3],
@@ -39,8 +39,8 @@ m4_define([OVSDB_CHECK_IDL_PYN],
AT_KEYWORDS([ovsdb server idl positive Python $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
m4_if([$2], [], [],
[AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])])
AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket $3],
@@ -62,8 +62,8 @@ m4_define([OVSDB_CHECK_IDL_REGISTER_COLUMNS_PYN],
AT_KEYWORDS([ovsdb server idl positive Python register_columns $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
m4_if([$2], [], [],
[AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])])
AT_CHECK([$8 $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 $3],
@@ -86,8 +86,8 @@ m4_define([OVSDB_CHECK_IDL_TCP_PYN],
AT_KEYWORDS([ovsdb server idl positive Python with tcp socket $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --remote=ptcp:0:127.0.0.1 --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --remote=ptcp:0:127.0.0.1 --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
m4_if([$2], [], [],
@@ -113,8 +113,8 @@ m4_define([OVSDB_CHECK_IDL_TCP6_PYN],
AT_KEYWORDS([ovsdb server idl positive Python with tcp6 socket $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=ptcp:0:[[::1]] --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=ptcp:0:[[::1]] --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
echo "TCP_PORT=$TCP_PORT"
@@ -148,13 +148,13 @@ m4_define([OVSDB_CHECK_IDL_PASSIVE_TCP_PY],
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
# find free TCP port
- AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server1.pid --remote=ptcp:0:127.0.0.1 --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=ptcp:0:127.0.0.1 --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
OVSDB_SERVER_SHUTDOWN
# start OVSDB server in passive mode
- AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server2.pid --remote=punix:socket --remote=tcp:127.0.0.1:$TCP_PORT --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ AT_CHECK([ovsdb-server --log-file '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --remote=tcp:127.0.0.1:$TCP_PORT --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
AT_CHECK([$PYTHON $srcdir/test-ovsdb.py -t10 idl_passive $srcdir/idltest.ovsschema ptcp:127.0.0.1:$TCP_PORT $3],
[0], [stdout], [ignore])
AT_CHECK([sort stdout | ${PERL} $srcdir/uuidfilt.pl]m4_if([$6],,, [[| $6]]),
@@ -594,8 +594,8 @@ AT_KEYWORDS([ovsdb server idl positive])
# tolerates them being missing.
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest2.ovsschema],
[0], [stdout], [ignore])
-AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
-on_exit 'kill `cat *.pid`'
+AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+on_exit 'kill `cat pid`'
AT_CHECK([test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket ['["idltest",
{"op": "insert",
"table": "link1",
@@ -666,8 +666,8 @@ m4_define([OVSDB_CHECK_IDL_FETCH_COLUMNS_PY],
AT_KEYWORDS([ovsdb server idl positive Python increment fetch $6])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
m4_if([$2], [], [],
[AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])])
AT_CHECK([$PYTHON $srcdir/test-ovsdb.py -t10 idl $srcdir/idltest.ovsschema unix:socket [$3] $4],
@@ -713,8 +713,8 @@ m4_define([OVSDB_CHECK_IDL_TRACK_C],
AT_KEYWORDS([ovsdb server idl tracking positive $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
m4_if([$2], [], [],
[AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])])
AT_CHECK([test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl unix:socket $3],
@@ -845,8 +845,8 @@ m4_define([OVSDB_CHECK_IDL_PARTIAL_UPDATE_MAP_COLUMN],
AT_KEYWORDS([ovsdb server idl partial update map column positive $5])
AT_CHECK([ovsdb-tool create db $abs_srcdir/idltest.ovsschema],
[0], [stdout], [ignore])
- AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/ovsdb-server.pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
- on_exit 'kill `cat *.pid`'
+ AT_CHECK([ovsdb-server '-vPATTERN:console:ovsdb-server|%c|%m' --detach --no-chdir --pidfile="`pwd`"/pid --remote=punix:socket --unixctl="`pwd`"/unixctl db], [0], [ignore], [ignore])
+ on_exit 'kill `cat pid`'
m4_if([$2], [], [],
[AT_CHECK([ovsdb-client transact unix:socket $2], [0], [ignore], [ignore])])
AT_CHECK([test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-partial-update-map-column unix:socket $3],
diff --git a/tests/ovsdb-monitor.at b/tests/ovsdb-monitor.at
index 37383fafb..0649f2a8d 100644
--- a/tests/ovsdb-monitor.at
+++ b/tests/ovsdb-monitor.at
@@ -39,7 +39,7 @@ m4_define([OVSDB_CHECK_MONITOR],
[ignore], [ignore], [kill `cat server-pid client-pid`])])
AT_CHECK([ovsdb-client transact unix:socket '[["$4"]]'], [0],
[ignore], [ignore], [kill `cat server-pid client-pid`])
- OVS_APP_EXIT_AND_WAIT(["`pwd`"/unixctl])
+ OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/unixctl], [`pwd`/server-pid])
OVS_WAIT_UNTIL([test ! -e client-pid])
AT_CHECK([${PERL} $srcdir/ovsdb-monitor-sort.pl < output | ${PERL} $srcdir/uuidfilt.pl], [0], [$7], [ignore])
AT_CLEANUP])
diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at
index 0ed7e87c6..9da511d18 100644
--- a/tests/ovsdb-server.at
+++ b/tests/ovsdb-server.at
@@ -1,7 +1,7 @@
AT_BANNER([OVSDB -- ovsdb-server transactions (Unix sockets)])
m4_define([OVSDB_SERVER_SHUTDOWN],
- [OVS_APP_EXIT_AND_WAIT(["`pwd`"/unixctl])])
+ [OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/unixctl], [`pwd`/pid])])
# OVSDB_CHECK_EXECUTION(TITLE, SCHEMA, TRANSACTIONS, OUTPUT, [KEYWORDS])
#