Browse Source

Merge branch 'rh/test-color-avoid-terminfo-in-original-home'

We try to see if "tput" gives a useful result before switching TERM
to dumb and moving HOME to point to our fake location for stability
of the tests, and then use the command when coloring the output
from the tests, but there is no guarantee "tput" works after
switching HOME.

* rh/test-color-avoid-terminfo-in-original-home:
  test-lib.sh: do tests for color support after changing HOME
  test-lib: use 'test ...' instead of '[ ... ]'
maint
Junio C Hamano 10 years ago
parent
commit
601ca9287d
  1. 92
      t/test-lib.sh

92
t/test-lib.sh

@ -184,16 +184,8 @@ export _x05 _x40 _z40 LF u200c
# This test checks if command xyzzy does the right thing... # This test checks if command xyzzy does the right thing...
# ' # '
# . ./test-lib.sh # . ./test-lib.sh
[ "x$ORIGINAL_TERM" != "xdumb" ] && (
TERM=$ORIGINAL_TERM &&
export TERM &&
[ -t 1 ] &&
tput bold >/dev/null 2>&1 &&
tput setaf 1 >/dev/null 2>&1 &&
tput sgr0 >/dev/null 2>&1
) &&
color=t


unset color
while test "$#" -ne 0 while test "$#" -ne 0
do do
case "$1" in case "$1" in
@ -258,40 +250,6 @@ then
verbose=t verbose=t
fi fi


if test -n "$color"
then
say_color () {
(
TERM=$ORIGINAL_TERM
export TERM
case "$1" in
error)
tput bold; tput setaf 1;; # bold red
skip)
tput setaf 4;; # blue
warn)
tput setaf 3;; # brown/yellow
pass)
tput setaf 2;; # green
info)
tput setaf 6;; # cyan
*)
test -n "$quiet" && return;;
esac
shift
printf "%s" "$*"
tput sgr0
echo
)
}
else
say_color() {
test -z "$1" && test -n "$quiet" && return
shift
printf "%s\n" "$*"
}
fi

error () { error () {
say_color error "error: $*" say_color error "error: $*"
GIT_EXIT_OK=t GIT_EXIT_OK=t
@ -684,7 +642,7 @@ test_done () {
then then
error "Can't use skip_all after running some tests" error "Can't use skip_all after running some tests"
fi fi
[ -z "$skip_all" ] || skip_all=" # SKIP $skip_all" test -z "$skip_all" || skip_all=" # SKIP $skip_all"


if test $test_external_has_tap -eq 0 if test $test_external_has_tap -eq 0
then then
@ -857,6 +815,52 @@ HOME="$TRASH_DIRECTORY"
GNUPGHOME="$HOME/gnupg-home-not-used" GNUPGHOME="$HOME/gnupg-home-not-used"
export HOME GNUPGHOME export HOME GNUPGHOME


# run the tput tests *after* changing HOME (in case ncurses needs
# ~/.terminfo for $TERM)
test -n "${color+set}" || test "x$ORIGINAL_TERM" != "xdumb" && (
TERM=$ORIGINAL_TERM &&
export TERM &&
test -t 1 &&
tput bold >/dev/null 2>&1 &&
tput setaf 1 >/dev/null 2>&1 &&
tput sgr0 >/dev/null 2>&1
) &&
color=t

if test -n "$color"
then
say_color () {
(
TERM=$ORIGINAL_TERM
export TERM
case "$1" in
error)
tput bold; tput setaf 1;; # bold red
skip)
tput setaf 4;; # blue
warn)
tput setaf 3;; # brown/yellow
pass)
tput setaf 2;; # green
info)
tput setaf 6;; # cyan
*)
test -n "$quiet" && return;;
esac
shift
printf "%s" "$*"
tput sgr0
echo
)
}
else
say_color() {
test -z "$1" && test -n "$quiet" && return
shift
printf "%s\n" "$*"
}
fi

if test -z "$TEST_NO_CREATE_REPO" if test -z "$TEST_NO_CREATE_REPO"
then then
test_create_repo "$TRASH_DIRECTORY" test_create_repo "$TRASH_DIRECTORY"

Loading…
Cancel
Save