Hi Lance! Thanks for fixing this. Tested on Windows and the fix works.
Acked-by: Paul-Daniel Boca <pb...@cloudbasesolutions.com> > -----Original Message----- > From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Lance > Richardson > Sent: Saturday, June 4, 2016 1:09 AM > To: dev@openvswitch.org > Subject: [ovs-dev] [PATCH] 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. > > Fixes: f9b11f2a09b4 ("tests: Make OVS_APP_EXIT_AND_WAIT() wait for process > termination") > Signed-off-by: Lance Richardson <lrich...@redhat.com> > --- > tests/daemon.at | 2 +- > tests/ovn-controller.at | 5 +++-- > tests/ovn-sbctl.at | 8 ++++---- > tests/ovs-macros.at | 16 +++++++++------- > tests/ovs-vswitchd.at | 15 +++++++++------ > tests/ovsdb-idl.at | 42 +++++++++++++++++++++--------------------- > tests/ovsdb-monitor.at | 2 +- > tests/ovsdb-server.at | 2 +- > 8 files changed, 49 insertions(+), 43 deletions(-) > > diff --git a/tests/daemon.at b/tests/daemon.at > index 41c5d07..768a44e 100644 > --- a/tests/daemon.at > +++ b/tests/daemon.at > @@ -83,7 +83,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 13b3f53..1cb28f8 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 c1b57dc..4fbda04 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 e5710a0..fadd2be 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-vswitchd.at b/tests/ovs-vswitchd.at > index 816d0a2..e34e05e 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 057d09f..cda0f79 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 37383fa..0649f2a 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 0ed7e87..9da511d 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]) > # > -- > 2.5.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev