Licensing: Update copyright dates for Ian Jackson
[adns] / regress / m1test
CommitLineData
0ebff22d 1#!/bin/bash
3d5cde09 2# usage: m1test <name> <initfile> [<initflags>] <queryargs>'
3# test recording script
4#
ae8cc977 5# This file is part of adns, which is
26e1c3d6 6# Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson
ae8cc977 7# Copyright (C) 1999-2000,2003,2006 Tony Finch
8# Copyright (C) 1991 Massachusetts Institute of Technology
9# (See the file INSTALL for full details.)
3d5cde09 10#
11# This program is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
7f8bbe29 13# the Free Software Foundation; either version 3, or (at your option)
3d5cde09 14# any later version.
15#
16# This program is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
8c09a4c6 22# along with this program; if not, write to the Free Software Foundation.
12c5b204 23
24set -e
98b6d5b4 25
2dee2b7a 26: ${srcdir=.}
98b6d5b4 27if [ $# -lt 3 ]
28then
e24e7155 29 echo >&2 \
67a57aae 30'usage: m1test <name> <initfile> [-<initflags>] ["<"]
31 [=<hrecord-command-args>] <queryargs>
32("<" means read input from case-<name>.in)'
98b6d5b4 33 exit 1
34fi
35
2dee2b7a 36case="$srcdir/case-$1"; shift
1c957fda 37initfile="$1"; shift
8b1171e6 38
0ebff22d 39hrecord="./adnstest_record"
e24e7155 40
8b1171e6 41case "$1" in
42-*) initflags="$1"; shift
43esac
44
67a57aae 45if test "x$1" = "x<"
46then
47 shift; exec <"$case.in"
48fi
49
e24e7155 50case "$1" in
51=*) hrecord="`echo \"$1\" | sed -e 's/^=//'`"; shift
52esac
53
0ebff22d 54if test ! -f "$hrecord" -a -f "${hrecord}_record"
55then
56 case "$hrecord" in
57 /*) program="$hrecord" ;;
58 *) program="./$hrecord" ;;
59 esac
60 hrecord="${program}_record"
61else
62 program="$(echo "$hrecord" | sed -e 's/ .*//; s/_record$//')"
63fi
64
12c5b204 65queryargs="$*"
12c5b204 66
2dee2b7a
MW
67initstring="`cat $srcdir/init-$initfile.text`"
68xinitflagsf=$srcdir/$program-xinitflags.text
0ebff22d 69if test -f $xinitflagsf
70then
71 useinitflags="$initflags $(cat $xinitflagsf)";
72else
73 useinitflags="$initflags /"
74fi
12c5b204 75
0ebff22d 76echo $program $initfile $initflags >"$case.sys"
1c957fda 77echo "$queryargs" >>"$case.sys"
12c5b204 78
1671459c 79EF_DISABLE_BANNER=1
80export EF_DISABLE_BANNER
81
0ebff22d 82rm -f pipe.out pipe.err
83mknod pipe.out p
84mknod pipe.err p
85tee <pipe.out "$case.out" &
86tee_out=$!
87tee <pipe.err "$case.err" &
88tee_err=$!
89exec 4>pipe.out
90exec 5>pipe.err
91
92echo running hrecord $initflags "... $queryargs"
1c957fda 93set +e
0ebff22d 94ADNS_TEST_OUT_FD=3 3>>"$case.sys" >&4 2>&5 \
95 $hrecord $useinitflags"$initstring" $queryargs
1c957fda 96rc=$?
97set -e
98
0ebff22d 99echo "rc=$rc" >&4
100exec 4>&-
101exec 5>&-
102
103wait $tee_out
104wait $tee_err
78bcc172 105
1c957fda 106echo "exit status: $rc"