chiark / gitweb /
Update copyright dates to 2000.
[adns.git] / regress / m1test
1 #!/bin/bash
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. 
25
26 set -e
27
28 if [ $# -lt 3 ]
29 then
30         echo >&2 \
31 'usage: m1test <name> <initfile> [-<initflags>]
32               [=<hrecord-command-args>] <queryargs>'
33         exit 1
34 fi
35
36 case="case-$1"; shift
37 initfile="$1"; shift
38
39 hrecord="./adnstest_record"
40
41 case "$1" in
42 -*)     initflags="$1"; shift
43 esac
44
45 case "$1" in
46 =*)     hrecord="`echo \"$1\" | sed -e 's/^=//'`"; shift
47 esac
48
49 if test ! -f "$hrecord" -a -f "${hrecord}_record"
50 then
51         case "$hrecord" in
52         /*)     program="$hrecord"      ;;
53         *)      program="./$hrecord"    ;;
54         esac
55         hrecord="${program}_record"
56 else
57         program="$(echo "$hrecord" | sed -e 's/ .*//; s/_record$//')"
58 fi
59
60 queryargs="$*"
61
62 initstring="`cat init-$initfile.text`"
63 xinitflagsf=$program-xinitflags.text
64 if test -f $xinitflagsf
65 then
66         useinitflags="$initflags $(cat $xinitflagsf)";
67 else
68         useinitflags="$initflags /"
69 fi
70
71 echo $program $initfile $initflags >"$case.sys"
72 echo "$queryargs" >>"$case.sys"
73
74 EF_DISABLE_BANNER=1
75 export EF_DISABLE_BANNER
76
77 rm -f pipe.out pipe.err
78 mknod pipe.out p
79 mknod pipe.err p
80 tee <pipe.out "$case.out" &
81 tee_out=$!
82 tee <pipe.err "$case.err" &
83 tee_err=$!
84 exec 4>pipe.out
85 exec 5>pipe.err
86
87 echo running hrecord $initflags "... $queryargs"
88 set +e
89 ADNS_TEST_OUT_FD=3 3>>"$case.sys" >&4 2>&5 \
90  $hrecord $useinitflags"$initstring" $queryargs
91 rc=$?
92 set -e
93
94 echo "rc=$rc" >&4
95 exec 4>&-
96 exec 5>&-
97
98 wait $tee_out
99 wait $tee_err
100
101 echo "exit status: $rc"