X-Git-Url: http://git.shiar.net/barcat.git/blobdiff_plain/beb81e63d94ed634661c385bf676ceb3544f9079..807f1103d68263f10a65d8bf7640f1401121f8b2:/t/regress.t diff --git a/t/regress.t b/t/regress.t index 508d361..177cc8d 100755 --- a/t/regress.t +++ b/t/regress.t @@ -5,60 +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*.out} +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%.out}" - input="${file%%_-*}.in" name="$(echo ${file#*-} | tr _ \ )" - set -- barcat - [ -r "$input" ] && set -- "$@" "$input" - case "$name" in - *\ -*) - args="${name#* -}" - set -- "$@" -"${args% [?|]*}" - ;; - esac - case "$name" in - *' ?' ) set -- sh -c "\$0 \$@ 2>/dev/null" "$@";; - *' ?'*) set -- sh -c "\$0 \$@ | test \$\? = ${name#* \?}" "$@";; - *' |'*) set -- sh -c "\$0 \$@ | ${name#* |}" "$@";; - *) eval set -- "$1" $2 $3 - esac - - if test -n "$regenerate" - 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" + if test -e "$file.out" then - "$@" 2>&1 | diffcmd "$file.out" - + ./cmddiff "$file.out" else color 33 echo "not ok $test_count - $name # TODO" @@ -68,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" @@ -85,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