chiark / gitweb /
@@ -3,6 +3,11 @@
[adns] / regress / m1test
CommitLineData
09aee00b 1#!/bin/bash
89435c42 2# usage: m1test <name> <initfile> [<initflags>] <queryargs>'
3# test recording script
4#
5# This file is
6# Copyright (C) 1998-2000 Ian Jackson <ian@davenant.greenend.org.uk>
7#
8# It is part of adns, which is
9# Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk>
10# Copyright (C) 1999 Tony Finch <dot@dotat.at>
11#
12# This program is free software; you can redistribute it and/or modify
13# it under the terms of the GNU General Public License as published by
14# the Free Software Foundation; either version 2, or (at your option)
15# any later version.
16#
17# This program is distributed in the hope that it will be useful,
18# but WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20# GNU General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, write to the Free Software Foundation,
24# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
e3324da1 25
26set -e
3c5796f7 27
28if [ $# -lt 3 ]
29then
eb485710 30 echo >&2 \
09aee00b 31'usage: m1test <name> <initfile> [-<initflags>]
32 [=<hrecord-command-args>] <queryargs>'
3c5796f7 33 exit 1
34fi
35
e9d74277 36case="case-$1"; shift
37initfile="$1"; shift
2d5cce62 38
09aee00b 39hrecord="./adnstest_record"
eb485710 40
2d5cce62 41case "$1" in
42-*) initflags="$1"; shift
43esac
44
eb485710 45case "$1" in
46=*) hrecord="`echo \"$1\" | sed -e 's/^=//'`"; shift
47esac
48
09aee00b 49if test ! -f "$hrecord" -a -f "${hrecord}_record"
50then
51 case "$hrecord" in
52 /*) program="$hrecord" ;;
53 *) program="./$hrecord" ;;
54 esac
55 hrecord="${program}_record"
56else
57 program="$(echo "$hrecord" | sed -e 's/ .*//; s/_record$//')"
58fi
59
e3324da1 60queryargs="$*"
e3324da1 61
e9d74277 62initstring="`cat init-$initfile.text`"
09aee00b 63xinitflagsf=$program-xinitflags.text
64if test -f $xinitflagsf
65then
66 useinitflags="$initflags $(cat $xinitflagsf)";
67else
68 useinitflags="$initflags /"
69fi
e3324da1 70
09aee00b 71echo $program $initfile $initflags >"$case.sys"
e9d74277 72echo "$queryargs" >>"$case.sys"
e3324da1 73
8f3b71b0 74EF_DISABLE_BANNER=1
75export EF_DISABLE_BANNER
76
09aee00b 77rm -f pipe.out pipe.err
78mknod pipe.out p
79mknod pipe.err p
80tee <pipe.out "$case.out" &
81tee_out=$!
82tee <pipe.err "$case.err" &
83tee_err=$!
84exec 4>pipe.out
85exec 5>pipe.err
86
87echo running hrecord $initflags "... $queryargs"
e9d74277 88set +e
09aee00b 89ADNS_TEST_OUT_FD=3 3>>"$case.sys" >&4 2>&5 \
90 $hrecord $useinitflags"$initstring" $queryargs
e9d74277 91rc=$?
92set -e
93
09aee00b 94echo "rc=$rc" >&4
95exec 4>&-
96exec 5>&-
97
98wait $tee_out
99wait $tee_err
7ca1d685 100
e9d74277 101echo "exit status: $rc"