X-Git-Url: http://git.shiar.nl/barcat.git/blobdiff_plain/b21642bd2561957fdd487faf11a2d21c11d75b03..fe12731a3c7c46a33d436edd88a2fdf758ffe82b:/t/regress.t diff --git a/t/regress.t b/t/regress.t index 84f3c99..f6877b1 100755 --- a/t/regress.t +++ b/t/regress.t @@ -6,10 +6,16 @@ test_count=0 fail_count=0 COLUMNS=40 +colorize= +test -t 1 && colorize=1 +color () { + test -n "$colorize" && + printf '\e[%sm' $@ +} regenerate= diffcmd () { comm --nocheck-order --output-delimiter=::: -3 $@ | - perl -pe'END{exit !!$.} s/^:::/>/ || s/^// || s/^/$(color 32)/dev/null" "$@";; + *' ?'*) set -- sh -c "\$0 \$@ | test \$\? = ${name#* \?}" "$@";; + *' |'*) set -- sh -c "\$0 \$@ | ${name#* |}" "$@";; + *) eval set -- "$1" $2 $3 + esac if test -n "$regenerate" then @@ -37,19 +60,43 @@ do echo "ok $test_count # skip $file.out" continue fi - $cmd >$file.out 2>&1 + "$@" >$file.out 2>&1 + elif test -e "$file.out" + then + "$@" 2>&1 | diffcmd "$file.out" - 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 + color 33 + echo "not ok $test_count - $name # TODO" + color 0 + continue fi if test 0 != $? then - fail_count=$((fail_count+1)) + 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" -exit $((fail_count>0)) +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