#!/bin/sh
-# $Id: stop02.sh,v 1.2 2003-05-06 17:39:01 adam Exp $
# test start and stop of the server with -S
-#
-# FIXME - this test does not currently pass (H 22-oct-2002)
-# Something rotten with signals and threads and mutexes...
-echo "initializing"
-mkdir -p reg
-rm -f idx.log srv.log
-../../index/zebraidx -l idx.log -c zebra1.cfg init || exit 1
+srcdir=${srcdir:-"."}
-#create a base to test on
-../../index/zebraidx -l idx.log -c zebra1.cfg update records || exit 1
+if [ "$srcdir" != "." ]
+ then
+ echo "Jumping over test"
+ exit 0
+fi
-#kill old server (if any)
-test -f zebrasrv.pid && kill -9 `cat zebrasrv.pid`
-rm -f zebrasrv.pid
-rm -f srv.log
+LOG=stop02.log
-echo "Starting server with -S (static)..."
-../../index/zebrasrv -S -c zebra1.cfg -l srv.log tcp:@:9901 &
-sleep 1
+rm -f $LOG
+echo "initializing" >>$LOG
+test -d reg || mkdir reg
+../../index/zebraidx -l $LOG -c $srcdir/zebra1.cfg init || exit 1
-echo " checking that it runs... "
-test -f zebrasrv.pid || exit 1
-PID=`cat zebrasrv.pid`
-ps -p $PID >/dev/null || exit 1
+#create a base to test on
+../../index/zebraidx -l $LOG -c $srcdir/zebra1.cfg update records || exit 1
-echo " connecting to it..."
-../testclient localhost:9901 utah > log || exit 1
+echo "Starting server with -S (static)..." >>$LOG
+../../index/zebrasrv -D -p z.pid -S -c $srcdir/zebra1.cfg -l $LOG unix:socket
+echo " checking that it runs... " >>$LOG
+test -f z.pid || exit 1
+PID=`cat z.pid`
+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 -d 5 localhost:9901 utah > log &
+echo " connecting again, with a delay..." >>$LOG
+../api/testclient -d 5 unix:socket utah >>$LOG &
sleep 1 # let the client connect
-echo " killing it..."
-kill $PID
+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
+rm -rf reg z.pid