X-Git-Url: http://git.shiar.nl/barcat.git/blobdiff_plain/aad4d54fa81ee0d4f02e868f82ff4296e225791b..abc01e566318ddf6f1a876755b95c3927eba65a4:/t/regress.t diff --git a/t/regress.t b/t/regress.t index 099b944..45ee5ba 100755 --- a/t/regress.t +++ b/t/regress.t @@ -5,12 +5,17 @@ cd "${0%/*}" || exit 1 test_count=0 COLUMNS=40 -diffcmd='diff --unchanged-line-format= --old-line-format=<%L --new-line-format=>%L' +regenerate= +diffcmd () { + comm --nocheck-order --output-delimiter=::: -3 $@ | + perl -pe'END{exit !!$.} s/^:::/>/ || s/^/...]"; exit 64;; + -G) regenerate=1 && shift;; + -*) echo "Usage: $0 [-G] [...]"; exit 64;; esac done @@ -24,7 +29,20 @@ do cmd="barcat $file.in" case "$name" in *\ -*) cmd="$cmd -${name#* -}";; esac - $cmd 2>&1 | $diffcmd "$file.out" - || printf 'not ' + if test -n "$regenerate" + then + if test -e $file.sh + then + echo "ok $test_count # skip $file.out" + continue + fi + $cmd >$file.out 2>&1 + else + if test -e $file.sh; then $cmd 2>&1 | ./$file.sh; fi && + if test -e $file.out; then $cmd 2>&1 | diffcmd "$file.out" -; fi + fi + + test 0 = $? || printf 'not ' echo "ok $test_count - $name" done