Licensing: Add copyright for Mark Wooding
[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
17cd4f48 7# Copyright (C) 2014 Mark Wooding
ae8cc977 8# Copyright (C) 1999-2000,2003,2006 Tony Finch
9# Copyright (C) 1991 Massachusetts Institute of Technology
10# (See the file INSTALL for full details.)
3d5cde09 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
7f8bbe29 14# the Free Software Foundation; either version 3, or (at your option)
3d5cde09 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
8c09a4c6 23# along with this program; if not, write to the Free Software Foundation.
12c5b204 24
25set -e
98b6d5b4 26
2dee2b7a 27: ${srcdir=.}
98b6d5b4 28if [ $# -lt 3 ]
29then
e24e7155 30 echo >&2 \
67a57aae 31'usage: m1test <name> <initfile> [-<initflags>] ["<"]
32 [=<hrecord-command-args>] <queryargs>
33("<" means read input from case-<name>.in)'
98b6d5b4 34 exit 1
35fi
36
2dee2b7a 37case="$srcdir/case-$1"; shift
1c957fda 38initfile="$1"; shift
8b1171e6 39
0ebff22d 40hrecord="./adnstest_record"
e24e7155 41
8b1171e6 42case "$1" in
43-*) initflags="$1"; shift
44esac
45
67a57aae 46if test "x$1" = "x<"
47then
48 shift; exec <"$case.in"
49fi
50
e24e7155 51case "$1" in
52=*) hrecord="`echo \"$1\" | sed -e 's/^=//'`"; shift
53esac
54
0ebff22d 55if test ! -f "$hrecord" -a -f "${hrecord}_record"
56then
57 case "$hrecord" in
58 /*) program="$hrecord" ;;
59 *) program="./$hrecord" ;;
60 esac
61 hrecord="${program}_record"
62else
63 program="$(echo "$hrecord" | sed -e 's/ .*//; s/_record$//')"
64fi
65
12c5b204 66queryargs="$*"
12c5b204 67
2dee2b7a
MW
68initstring="`cat $srcdir/init-$initfile.text`"
69xinitflagsf=$srcdir/$program-xinitflags.text
0ebff22d 70if test -f $xinitflagsf
71then
72 useinitflags="$initflags $(cat $xinitflagsf)";
73else
74 useinitflags="$initflags /"
75fi
12c5b204 76
0ebff22d 77echo $program $initfile $initflags >"$case.sys"
1c957fda 78echo "$queryargs" >>"$case.sys"
12c5b204 79
1671459c 80EF_DISABLE_BANNER=1
81export EF_DISABLE_BANNER
82
0ebff22d 83rm -f pipe.out pipe.err
84mknod pipe.out p
85mknod pipe.err p
86tee <pipe.out "$case.out" &
87tee_out=$!
88tee <pipe.err "$case.err" &
89tee_err=$!
90exec 4>pipe.out
91exec 5>pipe.err
92
93echo running hrecord $initflags "... $queryargs"
1c957fda 94set +e
0ebff22d 95ADNS_TEST_OUT_FD=3 3>>"$case.sys" >&4 2>&5 \
96 $hrecord $useinitflags"$initstring" $queryargs
1c957fda 97rc=$?
98set -e
99
0ebff22d 100echo "rc=$rc" >&4
101exec 4>&-
102exec 5>&-
103
104wait $tee_out
105wait $tee_err
78bcc172 106
1c957fda 107echo "exit status: $rc"