X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=regress%2Fr1test;h=74d7df2a9ce35b3ce63f319633d2a86f69141911;hb=fb3b3da3a0b6bf6d7d7f2a3ce182f368bf83de82;hp=ce6b2831578cf5b934181745d488fec0ed0d888a;hpb=78bcc1723e2e87c659bf63365e118245e53fd7e1;p=adns.git diff --git a/regress/r1test b/regress/r1test index ce6b283..74d7df2 100755 --- a/regress/r1test +++ b/regress/r1test @@ -1,38 +1,99 @@ #!/bin/sh # usage: r1test +# test execution script, for running one test +# +# This file is part of adns, which is +# Copyright (C) 1997-2000,2003,2006,2014-2016,2020 Ian Jackson +# Copyright (C) 2014 Mark Wooding +# Copyright (C) 1999-2000,2003,2006 Tony Finch +# Copyright (C) 1991 Massachusetts Institute of Technology +# (See the file INSTALL for full details.) +# +# 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 3, 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. set -e -casename="$1" -case="case-$casename" -ocase="output-$casename" +: ${srcdir=.} +. "$srcdir"/shlib +mrc=1 +trap 'exit $mrc' 0 -exec <"$case.sys" -read initfile -read queryargs +casename="$1" -initstring="`cat init-$initfile.text`" +playback_prepare rm -f $ocase.* -set +e -ADNS_TEST_REPORT_FD=3 3>>"$ocase.report" >"$ocase.out" 2>"$ocase.err" \ - ./hplayback "/$initstring" $queryargs -rc=$? -set -e +EF_DISABLE_BANNER=1 +export EF_DISABLE_BANNER + +if test -e "$case.in" +then + exec <"$case.in" +else + exec >"$ocase.report" 4<&4 >"$ocase.out" 2>"$ocase.err" \ + $ADNS_TEST_DEBUG $playback "$@" + rc=$? + set -e +} +playback_execute + +if [ "$rc" = 5 ] +then + printf "SKIPPED-$casename " + mrc=5 + exit +fi echo "rc=$rc" >>$ocase.out -for part in out err +failed=false +for part in err out do if diff -u -- "$case.$part" "$ocase.$part" then : else - echo >&2 "FAILED $case - WRONG OUTPUT" - exit 2 + failwhy="$failwhy WRONG OUTPUT" fi done -echo -n "$casename " +cat <&4 >"$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 -exit 0 +printf "$casename " +mrc=0