chiark / gitweb /
regress: fuzz: Fix check1fuzz and Makefile
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 1 Dec 2016 00:28:32 +0000 (00:28 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 11 Jun 2020 15:13:02 +0000 (16:13 +0100)
Now checkfuzz seems to DTRT.  We compare the stdout, to check that our
program ran to completion.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
regress/Makefile.in
regress/check1fuzz

index a212ef8402c82da363e4004b8d687e0e60d734b0..e0d84a96a3c76626d8787a6b5a4cc8573074633b 100644 (file)
@@ -77,10 +77,10 @@ fuzzraw-%:  fuzz-%
 .PRECIOUS: fuzz-%
 
 checkfuzz-%:   fuzz-% $(TARGETS)
-               @srcdir=$(srcdir) $(srcdir)/check1fuzz $< || test $$? = 5
+               @srcdir=$(srcdir) $(srcdir)/check1fuzz $<
 
 checkfuzzraw-%:        fuzzraw-% $(TARGETS)
-               @srcdir=$(srcdir) $(srcdir)/check1fuzz $< || test $$? = 5
+               @srcdir=$(srcdir) $(srcdir)/check1fuzz $<
 
 LINK_CMD=      $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
 
index 578bafb29df8a0fa6a2a1755f9caa0f4f591c5e6..4a8d2726368288795bc1ef6c214c3e514c4b19dd 100755 (executable)
@@ -11,10 +11,13 @@ fuzzfile="$1"
 exec <"$fuzzfile"
 
 case "$fuzzfile" in
-fuzz-*)                desc="${fuzzfile#fuzz-}"        ;;
-fuzzraw-*)     desc="${fuzzfile#fuzzraw-}"     ;;
+fuzz-*)                kind=f; case="${fuzzfile#fuzz-}"        ;;
+fuzzraw-*)     kind=r; case="${fuzzfile#fuzzraw-}"     ;;
+*)             printf >&2 '\nWRONG-FUZZ-%s\n' $fuzzfile; exit 1 ;;
 esac
 
+desc="$case.$kind"
+
 read nargs
 if [ "$nargs" = 0 ]; then printf "SKIPPED-$desc "; exit 5; fi
 
@@ -26,14 +29,23 @@ case "$program" in
 *)     program="./$program" ;;
 esac
 
+exec 3>output-$desc.trouble
+
 set +e
-${program} <"$fuzzfile" >/dev/null 2>&1
+${program} <"$fuzzfile" >output-$desc.out.tmp 2>&3
 rc=$?
 set -e
 
+if [ $rc = 0 ]; then
+       set +e
+       diff -u output-$desc.out.tmp case-$case.out >&3
+       rc=$?
+       set -e
+fi
+
 if [ $rc != 0 ]; then
-       printf >&2 '\nFAIL-%s\n' $fuzzfile
+       printf >&2 '\nFAIL-%s\n' $desc
        exit $rc
 fi
 
-printf "$desc "
+printf '%s ' "$desc"