bypassing checks when running make distcheck
[idzebra-moved-to-github.git] / test / gils / stop03.sh
1 #!/bin/sh
2 # $Id: stop03.sh,v 1.12 2006-04-27 10:52:26 marc Exp $
3 # test start and stop of the threaded server (-T)
4
5 srcdir=${srcdir:-"."}
6
7 if [ "$srcdir" != "." ]
8     then
9     echo "Jumping over test"
10     exit 0
11 fi
12
13 LOG=stop03.log
14
15 rm -f $LOG
16 echo "initializing" >>$LOG
17 mkdir -p reg
18 ../../index/zebraidx -l $LOG -c $srcdir/zebra1.cfg init || exit 1
19
20 #create a base to test on
21 ../../index/zebraidx -l $LOG -c $srcdir/zebra1.cfg update records  || exit 1
22
23 echo "Starting server with -T (threaded)..." >>$LOG
24 ../../index/zebrasrv -D -p z.pid -T -c $srcdir/zebra1.cfg -l $LOG unix:socket 2>out
25
26 if grep 'not available' out >/dev/null; then
27     test -f z.pid && rm -f z.pid
28     exit 0
29 fi
30
31 echo "  checking that it runs..." >>$LOG
32 test -f z.pid || exit 1
33
34 PID=`cat z.pid`
35 echo "  checking that it still runs..." >>$LOG
36 kill -CHLD $PID >/dev/null 2>&1 || exit 1
37
38 echo "  connecting to it..." >>$LOG
39 ../api/testclient unix:socket utah >>$LOG || exit 1
40 sleep 1
41
42 echo "  checking that it still runs..." >>$LOG
43 kill -CHLD $PID >/dev/null 2>&1 || exit 1
44
45 echo "  connecting again, with a delay..." >>$LOG
46 ../api/testclient unix:socket utah 5 >>$LOG &
47 sleep 1 # let the client connect 
48
49 echo "  checking that it still runs..." >>$LOG
50 kill -CHLD $PID >/dev/null 2>&1 || exit 1
51
52 echo "  killing it..." >>$LOG
53 kill $PID
54 sleep 1
55
56 echo "  checking that it is dead..." >>$LOG
57 kill -CHLD $PID >/dev/null 2>&1 && sleep 1 && \
58 kill -CHLD $PID >/dev/null 2>&1 && exit 1
59
60 # clean up
61 rm -rf reg z.pid