tests: paint unexpectedly fixed known breakages in bold red

Change color of unexpectedly fixed known breakages to bold red.  An
unexpectedly passing test indicates that the test code is somehow
broken or out of sync with the code it is testing.  Either way this is
an error which is potentially as bad as a failing test, and as such is
no longer portrayed as a pass in the output.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Adam Spiers 2012-12-16 18:28:15 +00:00 committed by Junio C Hamano
parent 5ebf89e886
commit b73d9a2363
2 changed files with 33 additions and 10 deletions

View File

@ -145,13 +145,31 @@ test_expect_success 'pretend we have fixed a known breakage' "
test_done test_done
EOF EOF
check_sub_test_lib_test passing-todo <<-\\EOF check_sub_test_lib_test passing-todo <<-\\EOF
> ok 1 - pretend we have fixed a known breakage # TODO known breakage > ok 1 - pretend we have fixed a known breakage # TODO known breakage vanished
> # fixed 1 known breakage(s) > # 1 known breakage(s) vanished; please update test(s)
> # passed all 1 test(s)
> 1..1 > 1..1
EOF EOF
" "
test_expect_success 'pretend we have fixed one of two known breakages (run in sub test-lib)' "
run_sub_test_lib_test partially-passing-todos \
'2 TODO tests, one passing' <<-\\EOF &&
test_expect_failure 'pretend we have a known breakage' 'false'
test_expect_success 'pretend we have a passing test' 'true'
test_expect_failure 'pretend we have fixed another known breakage' 'true'
test_done
EOF
check_sub_test_lib_test partially-passing-todos <<-\\EOF
> not ok 1 - pretend we have a known breakage # TODO known breakage
> ok 2 - pretend we have a passing test
> ok 3 - pretend we have fixed another known breakage # TODO known breakage vanished
> # 1 known breakage(s) vanished; please update test(s)
> # still have 1 known breakage(s)
> # passed all remaining 1 test(s)
> 1..3
EOF
"
test_expect_success 'pretend we have a pass, fail, and known breakage' " test_expect_success 'pretend we have a pass, fail, and known breakage' "
test_must_fail run_sub_test_lib_test \ test_must_fail run_sub_test_lib_test \
mixed-results1 'mixed results #1' <<-\\EOF && mixed-results1 'mixed results #1' <<-\\EOF &&
@ -199,10 +217,10 @@ test_expect_success 'pretend we have a mix of all possible results' "
> # false > # false
> not ok 8 - pretend we have a known breakage # TODO known breakage > not ok 8 - pretend we have a known breakage # TODO known breakage
> not ok 9 - pretend we have a known breakage # TODO known breakage > not ok 9 - pretend we have a known breakage # TODO known breakage
> ok 10 - pretend we have fixed a known breakage # TODO known breakage > ok 10 - pretend we have fixed a known breakage # TODO known breakage vanished
> # fixed 1 known breakage(s) > # 1 known breakage(s) vanished; please update test(s)
> # still have 2 known breakage(s) > # still have 2 known breakage(s)
> # failed 3 among remaining 8 test(s) > # failed 3 among remaining 7 test(s)
> 1..10 > 1..10
EOF EOF
" "

View File

@ -278,7 +278,7 @@ test_failure_ () {
test_known_broken_ok_ () { test_known_broken_ok_ () {
test_fixed=$(($test_fixed+1)) test_fixed=$(($test_fixed+1))
say_color "" "ok $test_count - $@ # TODO known breakage" say_color error "ok $test_count - $@ # TODO known breakage vanished"
} }
test_known_broken_failure_ () { test_known_broken_failure_ () {
@ -373,13 +373,18 @@ test_done () {
if test "$test_fixed" != 0 if test "$test_fixed" != 0
then then
say_color pass "# fixed $test_fixed known breakage(s)" say_color error "# $test_fixed known breakage(s) vanished; please update test(s)"
fi fi
if test "$test_broken" != 0 if test "$test_broken" != 0
then then
say_color warn "# still have $test_broken known breakage(s)" say_color warn "# still have $test_broken known breakage(s)"
msg="remaining $(($test_count-$test_broken)) test(s)" fi
if test "$test_broken" != 0 || test "$test_fixed" != 0
then
test_remaining=$(( $test_count - $test_broken - $test_fixed ))
msg="remaining $test_remaining test(s)"
else else
test_remaining=$test_count
msg="$test_count test(s)" msg="$test_count test(s)"
fi fi
case "$test_failure" in case "$test_failure" in
@ -393,7 +398,7 @@ test_done () {
if test $test_external_has_tap -eq 0 if test $test_external_has_tap -eq 0
then then
if test $test_count -gt 0 if test $test_remaining -gt 0
then then
say_color pass "# passed all $msg" say_color pass "# passed all $msg"
fi fi