X-Git-Url: http://git.shiar.nl/barcat.git/blobdiff_plain/d57c46ddb0a70401d43b358da34af276303bb135..b21642bd2561957fdd487faf11a2d21c11d75b03:/t/regress.t diff --git a/t/regress.t b/t/regress.t index 5daf496..84f3c99 100755 --- a/t/regress.t +++ b/t/regress.t @@ -3,9 +3,22 @@ cd "${0%/*}" || exit 1 test_count=0 +fail_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;; + esac +done for candidate in ${@:-t*.in} do @@ -17,8 +30,26 @@ 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 + + if test 0 != $? + then + fail_count=$((fail_count+1)) + printf 'not ' + fi echo "ok $test_count - $name" done echo "1..$test_count" +exit $((fail_count>0))