chiark / gitweb /
regress: fuzzraw: makefile and shell script fixes
[adns.git] / regress / make1fuzz
1 #!/bin/sh
2 set -e
3
4 : ${srcdir=.}
5 . "$srcdir"/shlib
6
7 casename="$1"
8
9 playback_prepare
10
11 ofuzz="fuzz-$casename"
12 ofuzzraw="fuzzraw-$casename"
13
14 rm -f "$ofuzz.tmp"
15 rm -f "$ofuzzraw.tmp"
16 exec >"$ofuzz.tmp"
17 exec 6>"$ofuzzraw.tmp"
18
19 fuzzout_complete () {
20         mv "$ofuzz.tmp" "$ofuzz"
21         mv "$ofuzzraw.tmp" "$ofuzzraw"
22         exit 0
23 }
24
25 if test ! -e $playback; then
26         echo 0
27         echo 0 >&6
28         fuzzout_complete
29 fi
30
31 dump_args () {
32         printf "%d\n" "$#"
33         for a in "$@"; do
34                 printf "%d\n" "${#a}"
35                 printf "%s\n" "$a"
36         done
37
38         if test -e "$case.in"
39         then
40                 inputsz=$(stat -c'%s' -L "$case.in")
41                 printf "%d\n" "$inputsz"
42                 cat "$case.in"
43         else
44                 echo 0
45         fi
46
47         echo
48 }       
49
50 playback_execute_hook () {
51         dump_args "${program}_fuzz"    "$@"
52         dump_args "${program}_fuzzraw" "$@" >&6
53         cat <&4 >"$ofuzz.sys.tmp"
54         exec 4<$ofuzz.sys.tmp
55         ADNS_TEST_FUZZRAW_DUMP_FD=6
56         export ADNS_TEST_FUZZRAW_DUMP_FD
57 }
58 playback_execute
59
60 cat $ofuzz.sys.tmp
61
62 fuzzout_complete