X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=regress%2Fm1test;h=5f928f12a9d2a4bb8a94212c84924b6579f6f4b7;hb=fc440c64836370db9d8cb1a25f09c9df0786f865;hp=81b46345a4b00f11148941fc86ac9eb7a82a905c;hpb=e24e7155ee921f30b195b079d0e2d29bf268a354;p=adns.git diff --git a/regress/m1test b/regress/m1test index 81b4634..5f928f1 100755 --- a/regress/m1test +++ b/regress/m1test @@ -1,17 +1,17 @@ -#!/bin/sh +#!/bin/bash # usage: m1test [] ' # test recording script # -# 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 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 2, or (at your option) +# 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, @@ -20,50 +20,88 @@ # 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. +# along with this program; if not, write to the Free Software Foundation. set -e +: ${srcdir=.} if [ $# -lt 3 ] then echo >&2 \ -'usage: m1test [] [=] - ' +'usage: m1test [-] ["<"] + [=] +("<" means read input from case-.in)' exit 1 fi -case="case-$1"; shift +case="$srcdir/case-$1"; shift initfile="$1"; shift -hrecord="./hrecord" +hrecord="./adnstest_record" case "$1" in -*) initflags="$1"; shift esac +if test "x$1" = "x<" +then + shift; exec <"$case.in" +fi + case "$1" in =*) hrecord="`echo \"$1\" | sed -e 's/^=//'`"; shift esac +if test ! -f "$hrecord" -a -f "${hrecord}_record" +then + case "$hrecord" in + /*) program="$hrecord" ;; + *) program="./$hrecord" ;; + esac + hrecord="${program}_record" +else + program="$(echo "$hrecord" | sed -e 's/ .*//; s/_record$//')" +fi + queryargs="$*" -initstring="`cat init-$initfile.text`" +initstring="`cat $srcdir/init-$initfile.text`" +xinitflagsf=$srcdir/$program-xinitflags.text +if test -e $xinitflagsf +then + useinitflags="$initflags $(cat $xinitflagsf)"; +else + useinitflags="$initflags /" +fi -echo $initfile $initflags >"$case.sys" +echo $program $initfile $initflags >"$case.sys" echo "$queryargs" >>"$case.sys" EF_DISABLE_BANNER=1 export EF_DISABLE_BANNER -echo running hrecord $initflags "/... $queryargs" +rm -f pipe.out pipe.err +mknod pipe.out p +mknod pipe.err p +tee pipe.out +exec 5>pipe.err + +echo running hrecord $initflags "... $queryargs" set +e -ADNS_TEST_OUT_FD=3 3>>"$case.sys" >"$case.out" 2>"$case.err" >"$case.sys" >&4 2>&5 \ + $hrecord $useinitflags"$initstring" $queryargs rc=$? set -e -echo "rc=$rc" >>$case.out +echo "rc=$rc" >&4 +exec 4>&- +exec 5>&- + +wait $tee_out +wait $tee_err -egrep . -- "$case.err" "$case.out" echo "exit status: $rc"