diff --git a/src/testsuite/Makefile.am b/src/testsuite/Makefile.am index 271aeb29..c5eccc3c 100644 --- a/src/testsuite/Makefile.am +++ b/src/testsuite/Makefile.am @@ -9,7 +9,7 @@ # Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste # der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS. # -# $Id: Makefile.am,v 1.3 2002/09/12 02:26:17 alex Exp $ +# $Id: Makefile.am,v 1.4 2002/09/20 14:46:55 alex Exp $ # AUTOMAKE_OPTIONS = ../portab/ansi2knr @@ -17,6 +17,7 @@ AUTOMAKE_OPTIONS = ../portab/ansi2knr INCLUDES = -I$(srcdir)/../portab EXTRA_DIST = \ + getpid.sh \ start-server.sh stop-server.sh tests.sh stress-server.sh \ connect-test.e channel-test.e mode-test.e \ stress-A.e stress-B.e check-idle.e \ diff --git a/src/testsuite/getpid.sh b/src/testsuite/getpid.sh new file mode 100755 index 00000000..973c67f3 --- /dev/null +++ b/src/testsuite/getpid.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# ngIRCd Test Suite +# $Id: getpid.sh,v 1.1 2002/09/20 14:46:55 alex Exp $ + +# wurde ein Name uebergeben? +[ $# -ne 1 ] && exit 1 + +# Flags fuer "ps" ermitteln +if [ `uname` = "FreeBSD" ]; then + PS_FLAGS=-a; PS_PIDCOL=1 +else + PS_FLAGS=-f; PS_PIDCOL=2 + ps $PS_FLAGS > /dev/null 2>&1 + if [ $? -ne 0 ]; then PS_FLAGS=a; PS_PIDCOL=1; fi +fi + +# PID ermitteln +ps $PS_FLAGS > procs.tmp +pid=`cat procs.tmp | grep "$1" | awk "{ print \\\$$PS_PIDCOL }" | sort -n | head -n 1` + +# ermittelte PID validieren +[ "$pid" -gt 1 ] > /dev/null 2>&1 +[ $? -ne 0 ] && exit 1 + +echo $pid +exit 0 + +# -eof- diff --git a/src/testsuite/start-server.sh b/src/testsuite/start-server.sh index 8eef8b47..cdb802f4 100755 --- a/src/testsuite/start-server.sh +++ b/src/testsuite/start-server.sh @@ -1,22 +1,30 @@ #!/bin/sh # ngIRCd Test Suite -# $Id: start-server.sh,v 1.7 2002/09/20 13:57:01 alex Exp $ +# $Id: start-server.sh,v 1.8 2002/09/20 14:46:55 alex Exp $ echo " starting server ..." -rm -rf logs +# alte Logfiles loeschen +rm -rf logs *.log +# pruefen, ob getpid.sh gueltige PID's liefert. Wenn dem nicht so ist, +# wird kein ngIRCd gestartet, da dieser ansonsten nicht mehr am Ende +# des Testlaufs beendet werden koennte! +./getpid.sh make > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo " error: getpid.sh FAILED!" + exit 1 +fi + +# MOTD fuer Test-Server erzeugen echo "This is an ngIRCd Test Server" > ngircd-test.motd +# Test-Server starten ... ./ngircd-TEST -np -f ${srcdir}/ngircd-test.conf > ngircd-test.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 - -ps $PS_FLAGS > procs.tmp -pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"` +# validieren, dass Server laeuft +pid=`./getpid.sh ngircd-TEST` [ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1 || exit 1 # -eof- diff --git a/src/testsuite/stop-server.sh b/src/testsuite/stop-server.sh index 0064baf2..3d193704 100755 --- a/src/testsuite/stop-server.sh +++ b/src/testsuite/stop-server.sh @@ -1,15 +1,15 @@ #!/bin/sh # ngIRCd Test Suite -# $Id: stop-server.sh,v 1.6 2002/09/20 13:57:01 alex Exp $ +# $Id: stop-server.sh,v 1.7 2002/09/20 14:46:55 alex Exp $ echo " stopping server ..." -PS_FLAGS=-f; PS_PIDCOL=2 -ps $PS_FLAGS > /dev/null 2>&1 -if [ $? -ne 0 ]; then PS_FLAGS=a; PS_PIDCOL=1; fi +# Test-Server stoppen ... +pid=`./getpid.sh ngircd-TEST` +[ -n "$pid" ] && kill $pid > /dev/null 2>&1 || exit 1 +sleep 1 -ps $PS_FLAGS > procs.tmp -pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"` -[ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1 || exit 1 +# jetzt duerfte der Prozess nicht mehr laufen +kill -0 $pid > /dev/null 2>&1 && exit 1 || exit 0 # -eof-