X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=regress%2Fm1test;h=f7a28f058fe2b336e60dfd3eccbd688c0b48e3e4;hp=361e5b17106d5a274dcfaf9ad3c3306d385eab37;hb=4e25ff4e538e8af8837b0b982a56ecc838fd7e27;hpb=12c5b204145993a34b92ac2b7de5ebcebb6d2d15 diff --git a/regress/m1test b/regress/m1test index 361e5b1..f7a28f0 100755 --- a/regress/m1test +++ b/regress/m1test @@ -1,16 +1,107 @@ -#!/bin/sh -# usage: m1test +#!/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 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" -initfile="$2" + +if [ $# -lt 3 ] +then + echo >&2 \ +'usage: m1test [-] ["<"] + [=] +("<" means read input from case-.in)' + exit 1 +fi + +case="case-$1"; shift +initfile="$1"; shift + +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="$*" -test -d ../testcases || cd testcases -initstring="`cat $initfile.init`" +initstring="`cat init-$initfile.text`" +xinitflagsf=$program-xinitflags.text +if test -f $xinitflagsf +then + useinitflags="$initflags $(cat $xinitflagsf)"; +else + useinitflags="$initflags /" +fi + +echo $program $initfile $initflags >"$case.sys" +echo "$queryargs" >>"$case.sys" + +EF_DISABLE_BANNER=1 +export EF_DISABLE_BANNER + +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" >&4 2>&5 \ + $hrecord $useinitflags"$initstring" $queryargs +rc=$? +set -e + +echo "rc=$rc" >&4 +exec 4>&- +exec 5>&- -exec >$tcn.log -echo "$initfile" -echo "$queryargs" +wait $tee_out +wait $tee_err -H../hrecord "/$initstring" $queryargs +echo "exit status: $rc"