diff options
author | Andrew Bartlett <abartlet@samba.org> | 2007-02-27 02:59:22 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:48:56 -0500 |
commit | ad3b40d258e09c7ddbfee387bd46e8b1d22e64c3 (patch) | |
tree | 48f1546e4e188e36bbad7628223e8676cbdcdb61 /source4 | |
parent | e2aa39b0247508df60e719dd01c19bfecae3bcb6 (diff) | |
download | samba-ad3b40d258e09c7ddbfee387bd46e8b1d22e64c3.tar.gz samba-ad3b40d258e09c7ddbfee387bd46e8b1d22e64c3.tar.bz2 samba-ad3b40d258e09c7ddbfee387bd46e8b1d22e64c3.zip |
r21554: Use a snippet from tridge's junkcode to cause us to wait for smbd to
exit.
If we kill smbd right away, we can interrupt the gcov data file
writeout. Instead, we now wait up to 20 seconds for the process to
exit, before sending it a kill -9.
Andrew Bartlett
(This used to be commit c547bce3d305f64d65961051e6462b8c83871f38)
Diffstat (limited to 'source4')
-rwxr-xr-x | source4/script/tests/selftest.sh | 6 | ||||
-rwxr-xr-x | source4/script/tests/test_functions.sh | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/source4/script/tests/selftest.sh b/source4/script/tests/selftest.sh index 70a91d4697..92fba70c4a 100755 --- a/source4/script/tests/selftest.sh +++ b/source4/script/tests/selftest.sh @@ -247,7 +247,11 @@ exit $? ) 9>$SMBD_TEST_FIFO totalfailed=$? -kill `cat $PIDDIR/smbd.pid` +smbd_PID=`cat $PIDDIR/smbd.pid` +waitforpid $smbd_PID 20 || { + echo "smbd process $1 took more than 20 seconds to exit, killing" + kill -9 $smbd_PID +} if [ "$TEST_LDAP"x = "yesx" ]; then if test -z "$FEDORA_DS_PREFIX"; then diff --git a/source4/script/tests/test_functions.sh b/source4/script/tests/test_functions.sh index 42c7d614d3..9b869782cd 100755 --- a/source4/script/tests/test_functions.sh +++ b/source4/script/tests/test_functions.sh @@ -113,6 +113,22 @@ EOF exit $failed } +# wait for a pid with given timeout +# returns 1 if it timed out, 0 if the process exited itself +waitforpid() { + pid=$1 + timeout=$2 # in seconds + _wcount=0 + while kill -0 $pid 2> /dev/null; do + sleep 1; + _wcount=`expr $_wcount + 1` + if [ $_wcount -eq $timeout ]; then + return "1"; + fi + done + return "0"; +} + if [ -z "$VALGRIND" ]; then MALLOC_CHECK_=2 export MALLOC_CHECK_ |