X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fgils%2Fstop03.sh;h=e084c9ee6fdb2ef0708bde678c75f356ac4a7f62;hb=c00bfddbf0f3608340d61298acc61dafb167f9b2;hp=fe33d0ca0ee5692078cee25b69b1e5f84c21376c;hpb=1c2e551dbdc6e631d19a405e2dbda45a234632f8;p=idzebra-moved-to-github.git diff --git a/test/gils/stop03.sh b/test/gils/stop03.sh index fe33d0c..e084c9e 100755 --- a/test/gils/stop03.sh +++ b/test/gils/stop03.sh @@ -1,51 +1,60 @@ -# test03.sh - test start and stop of the threaded server (-T) -# -# FIXME - this test does not currently pass (H 22-oct-2002) -# When the client exits, the process dies with a segfault +#!/bin/sh +# test start and stop of the threaded server (-T) -echo "initializing" +srcdir=${srcdir:-"."} + +if [ "$srcdir" != "." ] + then + echo "Jumping over test" + exit 0 +fi + +LOG=stop03.log + +rm -f $LOG +echo "initializing" >>$LOG mkdir -p reg -rm -f idx.log srv.log servercrash -../../index/zebraidx -l idx.log -c zebra1.cfg init || exit 1 +../../index/zebraidx -l $LOG -c $srcdir/zebra1.cfg init || exit 1 #create a base to test on -../../index/zebraidx -l idx.log -c zebra1.cfg update records || exit 1 - -#kill old server (if any) -test -f zebrasrv.pid && kill -9 `cat zebrasrv.pid` -rm -f zebrasrv.pid -rm -f srv.log - -echo "Starting server with -T (threaded)..." -( - ../../index/zebrasrv -T -c zebra1.cfg -l srv.log tcp:@:9901 || - echo "server failed with $?" > servercrash -)& -sleep 1 +../../index/zebraidx -l $LOG -c $srcdir/zebra1.cfg update records || exit 1 -echo " checking that it runs... " -test -f zebrasrv.pid || exit 1 -PID=`cat zebrasrv.pid` -ps -p $PID >/dev/null || exit 1 +echo "Starting server with -T (threaded)..." >>$LOG +../../index/zebrasrv -D -p z.pid -T -c $srcdir/zebra1.cfg -l $LOG unix:socket 2>out -echo " connecting to it..." -../testclient localhost:9901 utah > log || exit 1 +if grep 'not available' out >/dev/null; then + test -f z.pid && rm -f z.pid + exit 0 +fi + +echo " checking that it runs..." >>$LOG +test -f z.pid || exit 1 + +PID=`cat z.pid` +echo " checking that it still runs..." >>$LOG +kill -CHLD $PID >/dev/null 2>&1 || exit 1 + +echo " connecting to it..." >>$LOG +../api/testclient unix:socket utah >>$LOG || exit 1 sleep 1 -echo " checking that it still runs..." -ps -p $PID >/dev/null || exit 1 +echo " checking that it still runs..." >>$LOG +kill -CHLD $PID >/dev/null 2>&1 || exit 1 -echo " connecting again, with a delay..." -../testclient localhost:9901 utah 5 > log & +echo " connecting again, with a delay..." >>$LOG +../api/testclient unix:socket utah 5 >>$LOG & sleep 1 # let the client connect -echo " killing it..." -kill $PID +echo " checking that it still runs..." >>$LOG +kill -CHLD $PID >/dev/null 2>&1 || exit 1 + +echo " killing it..." >>$LOG +kill $PID sleep 1 -echo " checking that it is dead" -ps -p $PID >/dev/null && exit 1 +echo " checking that it is dead..." >>$LOG +kill -CHLD $PID >/dev/null 2>&1 && sleep 1 && \ +kill -CHLD $PID >/dev/null 2>&1 && exit 1 -echo ok # clean up -rm -rf reg idx.log srv.log zebrasrv.pid servercrash +rm -rf reg z.pid