# # patch "ChangeLog" # from [6113ebafb2987bc30e455162f79f5d272452abba] # to [7141223ba673ccb49c9cc1519ddfb330cb4136f5] # # patch "testsuite.at" # from [1ea66f19066261f848ee8bcd3e1b732ce8e9ff82] # to [0d28ca78cdcf6257515fd31f507b483c4059cde6] # --- ChangeLog +++ ChangeLog @@ -1,3 +1,11 @@ +2005-05-08 Matthew Gregan + + * testsuite.at: Drop pid mapping trickery, it doesn't work + consistently. We now try and use SysInternal's pskill to kill the + process. If pskill is not available, we fall back to the old + 'kill all monotone processes' method. These changes affect + Win32/MingW only. + 2005-05-07 Matthew Gregan * commands.cc (pid_file): Remove leftover debugging output. --- testsuite.at +++ testsuite.at @@ -334,20 +334,40 @@ m4_define([MONOTONE3], MONOTONE --db=test3.db) m4_define([NETSYNC_KILL], [ +# kill last seen pid if there is no pid file (needed for cases where +# NETSYNC_KILL{,HARD} is used more than once on a single process. +if test -e monotone_at.pid; then + mt_pid=`cat monotone_at.pid` +fi if test "$OSTYPE" == "msys"; then - # The a=4/1 thing is to avoid autotest treating $1 as its own parameter. - ps | awk -v pid=$(/dev/null + else + ps | awk -- '{p=$NF;a=1;if(p=="COMMAND")next;pp=split(p,ps,"/");if(ps[[pp]]=="monotone")system("kill " $a);}' + fi else - kill `cat monotone_at.pid` 2>/dev/null + kill $mt_pid 2>/dev/null fi rm -f monotone_at.pid 2>/dev/null ]) m4_define([NETSYNC_KILLHARD], [ +# kill last seen pid if there is no pid file (needed for cases where +# NETSYNC_KILL{,HARD} is used more than once on a single process. +if test -e monotone_at.pid; then + mt_pid=`cat monotone_at.pid` +fi if test "$OSTYPE" == "msys"; then - # The a=4/1 thing is to avoid autotest treating $1 as its own parameter. - ps | awk -v pid=$(/dev/null + else + ps | awk -- '{p=$NF;a=1;if(p=="COMMAND")next;pp=split(p,ps,"/");if(ps[[pp]]=="monotone")system("kill -KILL" $a);}' + fi else - kill -KILL `cat monotone_at.pid` 2>/dev/null + kill -KILL $mt_pid 2>/dev/null fi rm -f monotone_at.pid 2>/dev/null ])