Updates to pz:authentication documentation
[pazpar2-moved-to-github.git] / test / run_pazpar2.sh
index dd23b33..226e5d4 100755 (executable)
@@ -14,8 +14,10 @@ WAIT=120
 
 kill_pazpar2()
 {
-    if test -n "$PP2PID"; then
+    if test -z "$SKIP_PAZPAR2" -a -n "$PP2PID"; then
        kill $PP2PID
+       PP2PID=""
+       rm -f pazpar2.pid
     fi
     if test -f ztest.pid; then
        kill `cat ztest.pid`
@@ -57,6 +59,17 @@ if test "x${PREFIX}" = "x"; then
     exit 1
 fi
 
+URLS=${PREFIX}.urls
+if test ! -f ${srcdir}/${URLS}; then
+    echo "${srcdir}/${URLS} missing"
+    exit 1
+fi
+CFG=${PREFIX}.cfg
+if test ! -f ${srcdir}/${CFG}; then
+    echo "${srcdir}/${CFG} missing"
+    exit 1
+fi
+
 # look for curl in PATH
 oIFS=$IFS
 IFS=:
@@ -84,6 +97,9 @@ if test "$icu" = "true"; then
 fi
 
 if test "$ztest" = "true" ; then
+    YAZ_ZTEST_XML_FETCH=${srcdir}/${PREFIX}.
+    export YAZ_ZTEST_XML_FETCH
+
     oIFS=$IFS
     IFS=:
     F=''
@@ -131,8 +147,6 @@ if [ -z "$SKIP_PAZPAR2" ] ; then
     rm -f ${PREFIX}_pazpar2.log
 fi
 
-CFG=${PREFIX}.cfg
-URLS=${PREFIX}.urls
 VALGRINDLOG=${PREFIX}_valgrind.log
 
 if test `uname` = "Linux"; then
@@ -142,18 +156,25 @@ else
     sec=1
     maxrounds=10
 fi
-LEVELS=loglevel,fatal,warn,log,debug,notime,zoom,zoomdetails
-if test -n "$PAZPAR2_USE_VALGRIND"; then
+LEVELS=loglevel,fatal,warn,log,debug,zoom,zoomdetails,http,iochan
+if test "$PERF_PROG"; then
+    eval $PERF_PROG ../src/pazpar2 -p pazpar2.pid -X -l ${PREFIX}_pazpar2.log -f ${srcdir}/${CFG} >${PREFIX}_extra_pazpar2.log 2>&1 &
+    PP2PID=$!
+    sleep 5
+    if test -f pazpar2.pid; then
+       PP2PID=`cat pazpar2.pid`
+       echo "Got PID $PP2PID"
+    fi
+elif test -n "$PAZPAR2_USE_VALGRIND"; then
     valgrind --num-callers=30 --show-reachable=yes --leak-check=full --log-file=$VALGRINDLOG ../src/pazpar2 -v $LEVELS -X -l ${PREFIX}_pazpar2.log -f ${CFG} >${PREFIX}_extra_pazpar2.log 2>&1 &
     PP2PID=$!
-    sleep 6
+    sleep 10
     WAIT=400
 elif test -n "$SKIP_PAZPAR2"; then
     echo "${PREFIX}: not starting Pazpar2 (should be running already)"
 else
     ../src/pazpar2 -v $LEVELS -d -X -l ${PREFIX}_pazpar2.log -f ${srcdir}/${CFG} >${PREFIX}_extra_pazpar2.log 2>&1 &
     PP2PID=$!
-    sleep 2
 fi
 
 if [ -z "$SKIP_PAZPAR2" -a -z "$WAIT_PAZPAR2" ] ; then
@@ -180,7 +201,8 @@ code=0
 
 # We can start test for real
 testno=1
-rounds=1
+# set rounds to "wait" because pazpar2 might not be ready
+rounds=$maxrounds
 for f in `cat ${srcdir}/${URLS}`; do
     if echo $f | grep '^http' >/dev/null; then
        OUT1=${srcdir}/${PREFIX}_${testno}.res
@@ -213,10 +235,11 @@ for f in `cat ${srcdir}/${URLS}`; do
                    fi
                fi
            else
-               if test $rounds -eq 0; then
+               if test $testno -eq 1 -o $rounds -eq 0; then
                    echo "${PREFIX} $testno: Making for the first time"
                    mv $OUT2 $OUT1
                    code=1
+                   rounds=0
                fi
            fi
            if test $rounds -gt 0; then
@@ -226,8 +249,11 @@ for f in `cat ${srcdir}/${URLS}`; do
        testno=`expr $testno + 1`
        postfile=
        rounds=1
-    elif echo $f | grep '^[0-9]' >/dev/null; then
+    elif echo $f | grep '^w' >/dev/null; then
        rounds=$maxrounds
+    elif echo $f | grep '^[0-9]' >/dev/null; then
+       sleep $f
+       rounds=1
     else
        if test -f $srcdir/$f; then
            postfile=$srcdir/$f
@@ -246,7 +272,9 @@ for f in `cat ${srcdir}/${URLS}`; do
            else
                echo "${PREFIX} $testno: pazpar2 died"
            fi
-           exit 1
+           PP2PID=""
+           code=1
+           break
        fi
     fi
 done
@@ -260,15 +288,10 @@ if [ "$WAIT_PAZPAR2" ] ; then
     done
     echo "done"
 fi
-# Kill programs
-if test -f ztest.pid; then
-    kill `cat ztest.pid`
-    rm -f ztest.pid
-fi
-
-if [ -z "$SKIP_PAZPAR2" ] ; then
-    kill_pazpar2
-    sleep 2
+kill_pazpar2
+sleep 2
+if test "$PERF_PROG"; then
+    tail -3 ${PREFIX}_extra_pazpar2.log
 fi
 exit $code