X-Git-Url: http://git.shiar.net/barcat.git/blobdiff_plain/a66dc847f71255c361b1350b1ee38b35dffb7454..807f1103d68263f10a65d8bf7640f1401121f8b2:/t/regress.t diff --git a/t/regress.t b/t/regress.t index eedefbb..177cc8d 100755 --- a/t/regress.t +++ b/t/regress.t @@ -5,49 +5,34 @@ cd "${0%/*}" || exit 1 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/^:::/$(color 31)>/ || s/^/$(color 32)...]"; 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 _ \ )" - set -- barcat "$file.in" - case "$name" in *\ -*) set -- "$@" "-${name#* -}";; esac - case "$name" in *' |'*) set -- sh -c "\$0 \$1 $3" "$@";; esac - if test -n "$regenerate" + if test -e "$file.out" then - if test -e $file.sh - then - echo "ok $test_count # skip $file.out" - continue - fi - "$@" >$file.out 2>&1 - elif test -e "$file.out" - then - "$@" 2>&1 | diffcmd "$file.out" - + ./cmddiff "$file.out" else color 33 echo "not ok $test_count - $name # TODO" @@ -57,8 +42,15 @@ do if test 0 != $? then - fail_count=$((fail_count+1)) - color 1\;31 + case "$name" in + *' #TODO') + color 33 + ;; + *) + fail_count=$((fail_count+1)) + color 1\;31 + esac + printf 'not ' fi echo "ok $test_count - $name" @@ -74,8 +66,6 @@ else echo "# failed $fail_count among $test_count test(s)" fail_count=1 # exit code fi - -color 0\;36 -echo "1..$test_count" color 0 + exit $fail_count