X-Git-Url: http://git.shiar.net/barcat.git/blobdiff_plain/188cb157abb592e69997c7831c3554c25a48fae7..faeaf290144082f72a586024e7a6081aec56a353:/t/regress.t diff --git a/t/regress.t b/t/regress.t index ef28f6f..45ee5ba 100755 --- a/t/regress.t +++ b/t/regress.t @@ -5,13 +5,44 @@ 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;; + esac +done for candidate in ${@:-t*.in} do test_count=$((test_count+1)) - name="${candidate%.out}" - barcat <"$name.in" | $diffcmd "$name.out" - || printf 'not ' + file="${candidate%.in}" + test -r "$file.in" || continue + + name="$(echo ${file#*-} | tr _ \ )" + cmd="barcat $file.in" + case "$name" in *\ -*) cmd="$cmd -${name#* -}";; esac + + 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