--- /dev/null
+# test01.sh - test start and stop of the server with -1
+#
+
+echo "initializing"
+mkdir -p reg
+rm -f idx.log srv.log
+../../index/zebraidx -l idx.log -c 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 -1 (one shot)..."
+../../index/zebrasrv -1 -c zebra1.cfg -l srv.log tcp:@:9901 &
+sleep 1
+
+echo " cheking that it runs... "
+test -f zebrasrv.pid || exit 1
+PID=`cat zebrasrv.pid`
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting to it..."
+../testclient localhost:9901 utah > log || exit 1
+sleep 1
+
+echo " checking that server does not run any more"
+ps -p $PID >/dev/null && exit 1
+
+echo ok
+# clean up
+rm -rf reg idx.log srv.log zebrasrv.pid
--- /dev/null
+# test02.sh - 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
+
+#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 -S (static)..."
+../../index/zebrasrv -S -c zebra1.cfg -l srv.log tcp:@:9901 &
+sleep 1
+
+echo " cheking that it runs... "
+test -f zebrasrv.pid || exit 1
+PID=`cat zebrasrv.pid`
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting to it..."
+../testclient localhost:9901 utah > log || exit 1
+sleep 1
+
+echo " checking that it still runs..."
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting again, with a delay..."
+../testclient localhost:9901 utah 5 > log &
+sleep 1 # let the client connect
+
+echo " killing it..."
+kill $PID
+
+echo " checking that it is dead..."
+ps -p $PID >/dev/null && exit 1
+
+echo ok
+# clean up
+rm -rf reg idx.log srv.log zebrasrv.pid
--- /dev/null
+# 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
+
+echo "initializing"
+mkdir -p reg
+rm -f idx.log srv.log servercrash
+../../index/zebraidx -l idx.log -c 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
+
+echo " cheking that it runs... "
+test -f zebrasrv.pid || exit 1
+PID=`cat zebrasrv.pid`
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting to it..."
+../testclient localhost:9901 utah > log || exit 1
+sleep 1
+
+echo " checking that it still runs..."
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting again, with a delay..."
+../testclient localhost:9901 utah 5 > log &
+sleep 1 # let the client connect
+
+echo " killing it..."
+kill $PID
+sleep 1
+
+echo " checking that it still runs waiting for the client"
+ps -p $PID >/dev/null || exit 1
+
+echo " waiting for the client to exit..."
+sleep 3
+
+echo " checking that the server is dead..."
+ps -p $PID >/dev/null && exit 1
+
+echo " checking that it exited normally..."
+test -f servercrash && exit 1
+
+echo ok
+# clean up
+rm -rf reg idx.log srv.log zebrasrv.pid servercrash
--- /dev/null
+# test04.sh - test start and stop of the forked server
+#
+
+echo "initializing"
+mkdir -p reg
+rm -f idx.log srv.log
+../../index/zebraidx -l idx.log -c 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 (forked)..."
+../../index/zebrasrv -c zebra1.cfg -l srv.log tcp:@:9901 &
+sleep 1
+
+echo " cheking that it runs... "
+test -f zebrasrv.pid || exit 1
+PID=`cat zebrasrv.pid`
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting to it..."
+../testclient localhost:9901 utah > log || exit 1
+sleep 1
+
+echo " checking that it still runs..."
+ps -p $PID >/dev/null || exit 1
+
+echo " connecting again, with a delay..."
+../testclient localhost:9901 utah 5 > log &
+sleep 1 # let the client connect
+
+echo " killing it..."
+kill $PID
+sleep 1
+
+echo " checking that the server is dead..."
+ps -p $PID >/dev/null && exit 1
+
+echo ok
+# clean up
+rm -rf reg idx.log srv.log zebrasrv.pid