blob: a662ed2193fd053d08f07a1d60e8e9e83075f9b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
#!/bin/bash
# usage: m1test <name> <initfile> [<initflags>] <queryargs>'
# test recording script
#
# This file is part of adns, which is
# Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson
# Copyright (C) 2014 Mark Wooding
# Copyright (C) 1999-2000,2003,2006 Tony Finch
# Copyright (C) 1991 Massachusetts Institute of Technology
# (See the file INSTALL for full details.)
#
# 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 3, 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.
set -e
: ${srcdir=.}
if [ $# -lt 3 ]
then
echo >&2 \
'usage: m1test <name> <initfile> [-<initflags>] ["<"]
[=<hrecord-command-args>] <queryargs>
("<" means read input from case-<name>.in)'
exit 1
fi
case="$srcdir/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="$*"
initstring="`cat $srcdir/init-$initfile.text`"
xinitflagsf=$srcdir/$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 "$case.out" &
tee_out=$!
tee <pipe.err "$case.err" &
tee_err=$!
exec 4>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>&-
wait $tee_out
wait $tee_err
echo "exit status: $rc"
|