X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=regress%2Fr1test;h=9215ad56f134cda1bebc90ed4732acfe0ba7bf0c;hb=1ed3dba46ce3a8e24cfa484f6168348e796e2c73;hp=0c727a07e553757ec71052e8c022af2e62126285;hpb=12c5b204145993a34b92ac2b7de5ebcebb6d2d15;p=adns.git diff --git a/regress/r1test b/regress/r1test index 0c727a0..9215ad5 100755 --- a/regress/r1test +++ b/regress/r1test @@ -1,12 +1,86 @@ #!/bin/sh # usage: r1test +# test execution script, for running one test +# +# This file is +# Copyright (C) 1998-2000 Ian Jackson +# +# It is part of adns, which is +# Copyright (C) 1997-2000 Ian Jackson +# Copyright (C) 1999 Tony Finch +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. set -e -tcn="$1" -test -d ../testcases || cd testcases +mrc=1 +trap 'exit $mrc' 0 -exec <$tcn.log -read initfile +casename="$1" +case="case-$casename" +ocase="output-$casename" + +exec <"$case.sys" +read initfile initflags read queryargs -initstring="`cat $initfile.init`" -../hplayback "/$initstring" $queryargs + +initstring="`cat init-$initfile.text`" + +rm -f $ocase.* + +EF_DISABLE_BANNER=1 +export EF_DISABLE_BANNER + +set +e +ADNS_TEST_REPORT_FD=3 3>>"$ocase.report" >"$ocase.out" 2>"$ocase.err" \ + ./hplayback $initflags "/$initstring" $queryargs +rc=$? +set -e + +if [ "$rc" = 5 ] +then + echo -n "SKIPPED-$casename " + mrc=5 + exit +fi + +echo "rc=$rc" >>$ocase.out + +failed=false +for part in err out +do + if diff -u -- "$case.$part" "$ocase.$part" + then + : + else + failwhy="$failwhy WRONG OUTPUT" + fi +done + +cat >"$ocase.leftover" +if egrep . /dev/null "$ocase.leftover" +then + failwhy="$failwhy EXITED EARLY" +fi + +if [ "x$failwhy" != x ] +then + scremain="`wc -l <\"$ocase.leftover\"`" + echo >&2 "FAILED $case -$failwhy - lines of syscall remaining $scremain" + mrc=2 + exit +fi + +echo -n "$casename " +mrc=0