chiark / gitweb /
changelog: Document changes in 1.6.0 and finalise version number
[adns.git] / regress / r1test
1 #!/bin/sh
2 # usage: r1test <testcasename>
3 # test execution script, for running one test
4 #
5 #  This file is part of adns, which is
6 #    Copyright (C) 1997-2000,2003,2006,2014-2016,2020  Ian Jackson
7 #    Copyright (C) 2014  Mark Wooding
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.)
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 3, 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
25 set -e
26 : ${srcdir=.}
27 . "$srcdir"/shlib
28 mrc=1
29 trap 'exit $mrc' 0
30
31 casename="$1"
32
33 playback_prepare
34
35 rm -f $ocase.*
36
37 EF_DISABLE_BANNER=1
38 export EF_DISABLE_BANNER
39
40 if test ! -e $playback
41 then
42         printf "SKIPPED-$casename "
43         mrc=5
44         exit
45 fi
46
47 playback_execute_hook () { :; }
48 playback_execute
49
50 if [ "$rc" = 5 ]
51 then
52         printf "SKIPPED-$casename "
53         mrc=5
54         exit
55 fi
56
57 echo "rc=$rc" >>$ocase.out
58
59 failed=false
60 for part in err out
61 do
62         if diff -u -- "$case.$part" "$ocase.$part"
63         then
64                 :
65         else
66                 failwhy="$failwhy WRONG OUTPUT"
67         fi
68 done
69
70 cat <&4 >"$ocase.leftover"
71 if egrep . /dev/null "$ocase.leftover"
72 then
73         failwhy="$failwhy EXITED EARLY"
74 fi
75
76 if [ "x$failwhy" != x ]
77 then
78         scremain="`wc -l <\"$ocase.leftover\"`"
79         echo >&2 "FAILED $case -$failwhy - lines of syscall remaining $scremain"
80         mrc=2
81         exit
82 fi
83
84 printf "$casename "
85 mrc=0