testing: disable APDU logging for yaz-ztest
[pazpar2-moved-to-github.git] / test / run_pazpar2.sh
index 07bdf72..f2e3de5 100755 (executable)
@@ -17,14 +17,14 @@ kill_pazpar2()
     if test -n "$PP2PID"; then
        kill $PP2PID
     fi
-    if test -n "$SLEEP_PID"; then
-       kill $SLEEP_PID
-       SLEEP_PID=""
-    fi
     if test -f ztest.pid; then
        kill `cat ztest.pid`
        rm -f ztest.pid
     fi
+    if test -n "$SLEEP_PID"; then
+       kill $SLEEP_PID
+       SLEEP_PID=""
+    fi
 }
 
 ztest=false
@@ -70,7 +70,7 @@ done
 IFS=$oIFS
 
 if test -z $curl; then
-    echo "Test $PREFIX: curl not found"
+    echo "$PREFIX: curl not found"
     exit 1
 fi
 
@@ -78,27 +78,45 @@ if test "$icu" = "true"; then
     if ../src/pazpar2 -V |grep icu:enabled >/dev/null; then
        :
     else
-       echo "Skipping test ${PREFIX}: ICU support unavailable"
+       echo "Skipping ${PREFIX}: ICU support unavailable"
        exit 0
     fi
 fi
 
 if test "$ztest" = "true" ; then
+    YAZ_ZTEST_XML_FETCH=${srcdir}/${PREFIX}.
+    export YAZ_ZTEST_XML_FETCH
+
     oIFS=$IFS
     IFS=:
     F=''
     for p in $PATH; do
        if test -x $p/yaz-ztest -a -x $p/yaz-client; then
-           VERSION=`$p/yaz-client -V|awk '{print $3;}'|awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
-            if test $VERSION -ge 4002052; then
-               F=$p/yaz-ztest
-               break
-            fi
+           VERSION=`$p/yaz-client -V 2>/dev/null|awk '{print $3;}'|awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
+           if test -n "$VERSION"; then
+               if test $VERSION -ge 4002052; then
+                   F=$p/yaz-ztest
+                   break
+               fi
+           fi
        fi
     done
+    if test -z "$F"; then
+       for p in ${srcdir}/../../yaz ${srcdir}/../../yaz-*; do
+           if test -x $p/ztest/yaz-ztest; then
+               VERSION=`$p/ztest/yaz-ztest -V 2>/dev/null|awk '{print $3;}'|awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
+               if test -n "$VERSION"; then
+                   if test "$VERSION" -ge 4002052; then
+                       F=$p/ztest/yaz-ztest
+                       break
+                   fi
+               fi
+           fi
+       done
+    fi
     IFS=$oIFS
     if test -z "$F"; then
-       echo "Skipping test ${PREFIX}: recent yaz-ztest not found"
+       echo "Skipping ${PREFIX}: recent yaz-ztest not found"
        exit 0
     fi
     rm -f ztest.pid
@@ -132,8 +150,9 @@ if 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
+    WAIT=400
 elif test -n "$SKIP_PAZPAR2"; then
-    echo "Test ${PREFIX}: not starting Pazpar2 (should be running already)"
+    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=$!
@@ -147,7 +166,7 @@ if [ -z "$SKIP_PAZPAR2" -a -z "$WAIT_PAZPAR2" ] ; then
        trap kill_pazpar2 INT
        trap kill_pazpar2 HUP
     else
-       echo "Test ${PREFIX}: pazpar2 failed to start"
+       echo "${PREFIX}: pazpar2 failed to start"
        if test -f ztest.pid; then
            kill `cat ztest.pid`
            rm -f ztest.pid
@@ -185,20 +204,20 @@ for f in `cat ${srcdir}/${URLS}`; do
            fi
            rounds=`expr $rounds - 1`
            if test -f $OUT1 -a -z "$PAZPAR2_OVERRIDE_TEST"; then
-               if diff $OUT1 $OUT2 >$DIFF; then
+               if diff $OUT1 $OUT2 >$DIFF 2>/dev/null; then
                    rm $DIFF
                    rm $OUT2
                    rounds=0
                else
                    if test $rounds -eq 0; then
-                       echo "Test $testno: Failed. See $OUT1, $OUT2 and $DIFF"
+                       echo "${PREFIX} $testno: Failed. See $OUT1, $OUT2 and $DIFF"
                        echo "URL: $f"
                        code=1
                    fi
                fi
            else
                if test $rounds -eq 0; then
-                   echo "Test $testno: Making for the first time"
+                   echo "${PREFIX} $testno: Making for the first time"
                    mv $OUT2 $OUT1
                    code=1
                fi
@@ -226,9 +245,9 @@ for f in `cat ${srcdir}/${URLS}`; do
        else
            IFS="$oIFS"
            if test -n "$SLEEP_PID"; then
-               echo "Test $testno: pazpar2 terminated (timeout, probably)"
+               echo "${PREFIX} $testno: pazpar2 terminated (timeout, probably)"
            else
-               echo "Test $testno: pazpar2 died"
+               echo "${PREFIX} $testno: pazpar2 died"
            fi
            exit 1
        fi