X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Ftestsuite%2Fstart-server.sh;h=3d19ffb5997f795fe2dea8d0b421f6b87a49bf0d;hp=8969dcddbc99097c21e8249f5ad05b63c12aeeee;hb=6171beb7ab5dc0586581660852576f437470df63;hpb=b5d6597c0ab0c7aa2ada7a9083cbc49f5c92e286 diff --git a/src/testsuite/start-server.sh b/src/testsuite/start-server.sh index 8969dcdd..3d19ffb5 100755 --- a/src/testsuite/start-server.sh +++ b/src/testsuite/start-server.sh @@ -1,22 +1,54 @@ #!/bin/sh # ngIRCd Test Suite -# $Id: start-server.sh,v 1.6 2002/09/18 20:58:56 alex Exp $ -echo " starting server ..." +[ -z "$srcdir" ] && srcdir=`dirname $0` -rm -rf logs +# read in functions +. ${srcdir}/functions.inc -echo "This is an ngIRCd Test Server" > ngircd-test.motd +if [ -n "$1" ]; then + id="$1"; shift +else + id="1" +fi -./ngircd-TEST -np -f ${srcdir}/ngircd-test.conf > ngircd-test.log 2>&1 & +echo_n "starting server ${id} ..." + +# remove old logfiles, if this is the first server (ID 1) +[ "$id" = "1" ] && rm -rf logs *.log + +# check weather getpid.sh returns valid PIDs. If not, don't start up the +# test-server, because we won't be able to kill it at the end of the test. +./getpid.sh sh > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo " getpid.sh failed!" + exit 1 +fi + +# check if there is a test-server already running +./getpid.sh T-ngircd${id} >/dev/null 2>&1 +if [ $? -eq 0 ]; then + echo " failure: test-server ${id} already running!" + exit 1 +fi + +# generate MOTD for test-server +echo "This is an ngIRCd Test Server" > ngircd-test${id}.motd + +# glibc memory checking, see malloc(3) +MALLOC_CHECK_=3 +export MALLOC_CHECK_ + +# starting up test-server ... +./T-ngircd${id} -n -f ${srcdir}/ngircd-test${id}.conf $* \ + >ngircd-test${id}.log 2>&1 & sleep 1 -PS_FLAGS=-f; PS_PIDCOL=2 -ps $PS_FLAGS > /dev/null 2>&1 -if [ $? -ne 0 ]; then PS_FLAGS=a; PS_PIDCOL=1; fi +# validate running test-server +pid=`./getpid.sh T-ngircd${id}` +[ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1; r=$? -ps $PS_FLAGS > procs.tmp -pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"` -kill -0 $pid > /dev/null 2>&1 +[ $r -eq 0 ] && echo " ok." || echo " failure!" +exit $r # -eof-