Skip to content

Commit

Permalink
Merge branch 'ph/color-test'
Browse files Browse the repository at this point in the history
* ph/color-test:
  Support a --quiet option in the test-suite.
  Add some fancy colors in the test library when terminal supports it.
  • Loading branch information
Junio C Hamano committed Oct 27, 2007
2 parents 4a21d13 + 1ece127 commit dc27155
Showing 1 changed file with 48 additions and 17 deletions.
65 changes: 48 additions & 17 deletions t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,11 @@ esac
# '
# . ./test-lib.sh

error () {
echo "* error: $*"
trap - exit
exit 1
}

say () {
echo "* $*"
}
[ "x$TERM" != "xdumb" ] &&
tput bold >/dev/null 2>&1 &&
tput setaf 1 >/dev/null 2>&1 &&
tput sgr0 >/dev/null 2>&1 &&
color=t

test "${test_description}" != "" ||
error "Test script did not set test_description."
Expand All @@ -84,6 +80,10 @@ do
exit 0 ;;
-v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
verbose=t; shift ;;
-q|--q|--qu|--qui|--quie|--quiet)
quiet=t; shift ;;
--no-color)
color=; shift ;;
--no-python)
# noop now...
shift ;;
Expand All @@ -92,6 +92,37 @@ do
esac
done

if test -n "$color"; then
say_color () {
case "$1" in
error) tput bold; tput setaf 1;; # bold red
skip) tput bold; tput setaf 2;; # bold green
pass) tput setaf 2;; # green
info) tput setaf 3;; # brown
*) test -n "$quiet" && return;;
esac
shift
echo "* $*"
tput sgr0
}
else
say_color() {
test -z "$1" && test -n "$quiet" && return
shift
echo "* $*"
}
fi

error () {
say_color error "error: $*"
trap - exit
exit 1
}

say () {
say_color info "$*"
}

exec 5>&1
if test "$verbose" = "t"
then
Expand Down Expand Up @@ -122,13 +153,13 @@ test_tick () {

test_ok_ () {
test_count=$(expr "$test_count" + 1)
say " ok $test_count: $@"
say_color "" " ok $test_count: $@"
}

test_failure_ () {
test_count=$(expr "$test_count" + 1)
test_failure=$(expr "$test_failure" + 1);
say "FAIL $test_count: $1"
say_color error "FAIL $test_count: $1"
shift
echo "$@" | sed -e 's/^/ /'
test "$immediate" = "" || { trap - exit; exit 1; }
Expand Down Expand Up @@ -158,9 +189,9 @@ test_skip () {
done
case "$to_skip" in
t)
say >&3 "skipping test: $@"
say_color skip >&3 "skipping test: $@"
test_count=$(expr "$test_count" + 1)
say "skip $test_count: $1"
say_color skip "skip $test_count: $1"
: true
;;
*)
Expand Down Expand Up @@ -247,11 +278,11 @@ test_done () {
# The Makefile provided will clean this test area so
# we will leave things as they are.

say "passed all $test_count test(s)"
say_color pass "passed all $test_count test(s)"
exit 0 ;;

*)
say "failed $test_failure among $test_count test(s)"
say_color error "failed $test_failure among $test_count test(s)"
exit 1 ;;

esac
Expand Down Expand Up @@ -296,8 +327,8 @@ do
done
case "$to_skip" in
t)
say >&3 "skipping test $this_test altogether"
say "skip all tests in $this_test"
say_color skip >&3 "skipping test $this_test altogether"
say_color skip "skip all tests in $this_test"
test_done
esac
done

0 comments on commit dc27155

Please sign in to comment.