#!/bin/sh
-# $Id: test_http.sh,v 1.1 2007-05-15 15:50:48 adam Exp $
+# $Id: test_http.sh,v 1.10 2007-08-13 12:51:00 adam Exp $
#
-# Regression test using pazpar2 against yaz-ztest
+# Regression test using pazpar2 against z3950.indexdata.com/marc
# Reads Pazpar2 URLs from test_http_urls
# Outputs to test_http_<no>.log
-# Matches against results in test_htttp_<no>.res
+# Matches against results in test_http_<no>.res
#
# srcdir might be set by make
srcdir=${srcdir:-"."}
-# Find a suitable yaz-ztest
-yt=""
-for d in /usr/bin /usr/local/bin ../../yaz/ztest; do
- yt=${d}/yaz-ztest
- if test -x ${yt}; then
- break
- fi
-done
-if test -z "${yt}"; then
- echo "No yaz-ztest found. Skipping"
- exit 0
+wget=""
+lynx=""
+if test -x /usr/bin/wget; then
+ wget=/usr/bin/wget
+fi
+if test -x /usr/bin/lynx; then
+ lynx=/usr/bin/lynx
+fi
+
+# Fire up pazpar2
+rm -f pazpar2.log
+
+if test "$usevalgrind"; then
+ valgrind --log-file=valgrind ../src/pazpar2 -X -l pazpar2.log -f ${srcdir}/test_http.cfg -t ${srcdir}/test_http.xml >extra_pazpar2.log 2>&1 &
+else
+ ../src/pazpar2 -X -l pazpar2.log -f ${srcdir}/test_http.cfg -t ${srcdir}/test_http.xml >extra_pazpar2.log 2>&1 &
fi
-# Fire up yaz-ztest (should match port in test_http.xml)
-$yt -l test_http_ztest.log tcp:@:9764 &
-YTPID=$!
-# Fire yp pazpar2
-../src/pazpar2 -f ${srcdir}/test_http.cfg -t ${srcdir}/test_http.xml >test_http_pp2.log 2>&1 &
PP2PID=$!
-# Give both programs room to start properly..
-sleep 1
+# Give it a chance to start properly..
+sleep 3
# Set to success by default.. Will be set to non-zero in case of failure
code=0
echo "pazpar2 failed to start"
fi
-if ps -p $YTPID >/dev/null 2>&1; then
- :
-else
- code=1
- YTPID=""
- echo "yaz-ztest failed to start"
-fi
# We can start test for real
+oIFS="$IFS"
+IFS='
+'
+
testno=1
for f in `cat ${srcdir}/test_http_urls`; do
- OUT1=${srcdir}/test_http_${testno}.res
- OUT2=${srcdir}/test_http_${testno}.log
- DIFF=${srcdir}/test_http_${testno}.dif
- if test -f $OUT1; then
- rm -f $OUT2
- wget -q -O $OUT2 $f
- if diff $OUT1 $OUT2 >$DIFF; then
- echo "Test $testno: OK"
+ if echo $f | grep '^http' >/dev/null; then
+ OUT1=${srcdir}/test_http_${testno}.res
+ OUT2=test_http_${testno}.log
+ DIFF=test_http_${testno}.dif
+ if test -f $OUT1; then
+ rm -f $OUT2
+ if test -n "${wget}"; then
+ ${wget} -q -O $OUT2 $f
+ elif test -n "${lynx}"; then
+ ${lynx} -dump $f >$OUT2
+ else
+ break
+ fi
+ if diff $OUT1 $OUT2 >$DIFF; then
+ :
+ else
+ echo "Test $testno: Failed. See $OUT1, $OUT2 and $DIFF"
+ code=1
+ fi
else
- echo "Test $testno: Failed. See $OUT1, $OUT2 and $DIFF"
+ echo "Test $testno: Making for the first time"
+ ${wget} -q -O $OUT1 $f
code=1
fi
+ testno=`expr $testno + 1`
+ else
+ sleep $f
+ fi
+ if ps -p $PP2PID >/dev/null 2>&1; then
+ :
else
- echo "Test $testno: Making for the first time"
- wget -q -O $OUT1 $f
- code=1
+ echo "pazpar2 died"
fi
- testno=`expr $testno + 1`
done
+IFS="$oIFS"
sleep 1
# Kill programs
-if test -n "$YTPID"; then
- kill $YTPID
-fi
if test -n "$PP2PID"; then
kill $PP2PID