X-Git-Url: http://git.shiar.net/barcat.git/blobdiff_plain/9aa6d010ebaf2d3ad8e6cad435a54748fb2572e2..e2245af4584e8c6c46a472c78df541a65c0ee04c:/t/regress.t?ds=sidebyside diff --git a/t/regress.t b/t/regress.t index 1463ce3..177cc8d 100755 --- a/t/regress.t +++ b/t/regress.t @@ -3,43 +3,69 @@ 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= +colorize= +test -t 1 && colorize=1 +color () { + test -n "$colorize" && + printf '\33[%sm' $@ +} for option in "$@" do case "$option" in - -G) regenerate=1 && shift;; - -*) echo "Usage: $0 [-G] [...]"; exit 64;; + -*) echo "Usage: $0 [...]"; exit 64;; esac done -for candidate in ${@:-t*.in} +params="${@:-t*.out}" +color 0\;36 +echo "1..$(echo $params | wc -w)" +color 0 + +for candidate in $params do test_count=$((test_count+1)) - file="${candidate%.in}" - test -r "$file.in" || continue - + file="${candidate%.out}" name="$(echo ${file#*-} | tr _ \ )" - cmd="barcat $file.in" - case "$name" in *\ -*) cmd="$cmd -${name#* -}";; esac - if test -n "$regenerate" + if test -e "$file.out" then - if test -e $file.out - then - echo "ok $test_count # skip existing $file.out" - continue - fi - $cmd >$file.out 2>&1 + ./cmddiff "$file.out" else - $cmd 2>&1 | $diffcmd "$file.out" - + color 33 + echo "not ok $test_count - $name # TODO" + color 0 + continue fi - test 0 = $? || printf 'not ' + if test 0 != $? + then + case "$name" in + *' #TODO') + color 33 + ;; + *) + fail_count=$((fail_count+1)) + color 1\;31 + esac + + printf 'not ' + fi echo "ok $test_count - $name" + color 0 done -echo "1..$test_count" +if test $fail_count = 0 +then + color 32 + echo "# passed all $test_count test(s)" +else + color 31 + echo "# failed $fail_count among $test_count test(s)" + fail_count=1 # exit code +fi +color 0 + +exit $fail_count