Version 2.0.59
[idzebra-moved-to-github.git] / test / gils / stop03.sh
index 23c766c..e084c9e 100755 (executable)
@@ -1,53 +1,60 @@
 #!/bin/sh
-# $Id: stop03.sh,v 1.2 2003-05-06 17:39:01 adam Exp $
 # 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
 
-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