chiark / gitweb /
regress: Provide Makefile targets to generate fuzzer inputs
[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
13 rm -f "$ofuzz.tmp"
14 exec >"$ofuzz.tmp"
15
16 fuzzout_complete () {
17         mv "$ofuzz.tmp" "$ofuzz"
18         exit 0
19 }
20
21 if test ! -e $playback; then
22         echo 0
23         fuzzout_complete
24 fi
25
26 playback_execute_callback () {
27         set "${program}_fuzz" "$@"
28
29         printf "%d\n" "$#"
30         for a in "$@"; do
31                 printf "%d\n" "${#a}"
32                 printf "%s\n" "$a"
33         done
34 }
35 playback_execute
36
37 if test -e "$case.in"
38 then
39         inputsz=$(stat -c'%s' -L "$case.in")
40         printf "%d\n" "$inputsz"
41         cat "$case.in"
42 else
43         echo 0
44 fi
45 echo
46
47 cat <&4
48
49 fuzzout_complete