From f15696a4a6275c9b1b9933d4410c25277050f7bd Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 10 Sep 2007 08:18:19 +0000 Subject: [PATCH] Factor out most of the regression test to separate script --- test/Makefile.am | 5 ++- test/run_pazpar2.sh | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ test/test_http.sh | 97 ++----------------------------------------- 3 files changed, 121 insertions(+), 96 deletions(-) create mode 100755 test/run_pazpar2.sh diff --git a/test/Makefile.am b/test/Makefile.am index 83ccc52..61a89c2 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,8 +1,9 @@ -# $Id: Makefile.am,v 1.3 2007-08-12 10:36:33 adam Exp $ +# $Id: Makefile.am,v 1.4 2007-09-10 08:18:19 adam Exp $ check_SCRIPTS = test_http.sh -EXTRA_DIST = marc21.xsl test_http.xml test_http.cfg test_http_urls $(check_SCRIPTS) +EXTRA_DIST = run_pazpar2.sh marc21.xsl test_http.xml test_http.cfg \ + test_http_urls $(check_SCRIPTS) TESTS = $(check_SCRIPTS) diff --git a/test/run_pazpar2.sh b/test/run_pazpar2.sh new file mode 100755 index 0000000..5a6b3bc --- /dev/null +++ b/test/run_pazpar2.sh @@ -0,0 +1,115 @@ +#!/bin/sh +# $Id: run_pazpar2.sh,v 1.1 2007-09-10 08:18:19 adam Exp $ +# +# Regression test using pazpar2 against z3950.indexdata.com/marc +# Reads Pazpar2 URLs from test_http_urls +# Outputs to test_http_.log +# Matches against results in test_http_.res +# + + +# srcdir might be set by make +srcdir=${srcdir:-"."} + +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 + + +PREFIX=$1 +if test "x${PREFIX}" = "x"; then + echo Missing prefix for run_pazpar2.sh + exit 1 +fi +CFG=${PREFIX}.cfg +URLS=${PREFIX}_urls + +if test "$usevalgrind"; then + valgrind --log-file=valgrind ../src/pazpar2 -X -l pazpar2.log -f ${CFG} -t ${srcdir}/test_http.xml >extra_pazpar2.log 2>&1 & +else + ../src/pazpar2 -X -l pazpar2.log -f ${srcdir}/${CFG} -t ${srcdir}/test_http.xml >extra_pazpar2.log 2>&1 & +fi + + +PP2PID=$! + +# 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 + +if ps -p $PP2PID >/dev/null 2>&1; then + : +else + code=1 + PP2PID="" + echo "pazpar2 failed to start" +fi + +# We can start test for real + +oIFS="$IFS" +IFS=' +' + +testno=1 +for f in `cat ${srcdir}/${URLS}`; do + if echo $f | grep '^http' >/dev/null; then + OUT1=${srcdir}/${PREFIX}_${testno}.res + OUT2=${PREFIX}_${testno}.log + DIFF=${PREFIX}_${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: 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 "pazpar2 died" + fi +done +IFS="$oIFS" + +sleep 1 +# Kill programs + +if test -n "$PP2PID"; then + kill $PP2PID +fi + +exit $code + +# Local Variables: +# mode:shell-script +# sh-indentation: 2 +# sh-basic-offset: 4 +# End: diff --git a/test/test_http.sh b/test/test_http.sh index 42fdd49..3142801 100755 --- a/test/test_http.sh +++ b/test/test_http.sh @@ -1,103 +1,12 @@ #!/bin/sh -# $Id: test_http.sh,v 1.10 2007-08-13 12:51:00 adam Exp $ +# $Id: test_http.sh,v 1.11 2007-09-10 08:18:19 adam Exp $ # -# Regression test using pazpar2 against z3950.indexdata.com/marc -# Reads Pazpar2 URLs from test_http_urls -# Outputs to test_http_.log -# Matches against results in test_http_.res -# - # srcdir might be set by make srcdir=${srcdir:-"."} -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 - - -PP2PID=$! - -# 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 - -if ps -p $PP2PID >/dev/null 2>&1; then - : -else - code=1 - PP2PID="" - echo "pazpar2 failed to start" -fi - -# We can start test for real - -oIFS="$IFS" -IFS=' -' - -testno=1 -for f in `cat ${srcdir}/test_http_urls`; do - 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: 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 "pazpar2 died" - fi -done -IFS="$oIFS" - -sleep 1 -# Kill programs - -if test -n "$PP2PID"; then - kill $PP2PID -fi - -exit $code +# Test using test_http.cfg +exec ${srcdir}/run_pazpar2.sh test_http # Local Variables: # mode:shell-script -- 1.7.10.4