Skip to content

Commit 601ca92

Browse files
committed
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 '[ ... ]'
2 parents 9920c71 + 102fc80 commit 601ca92

File tree

1 file changed

+48
-44
lines changed

1 file changed

+48
-44
lines changed

t/test-lib.sh

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -184,16 +184,8 @@ export _x05 _x40 _z40 LF u200c
184184
# This test checks if command xyzzy does the right thing...
185185
# '
186186
# . ./test-lib.sh
187-
[ "x$ORIGINAL_TERM" != "xdumb" ] && (
188-
TERM=$ORIGINAL_TERM &&
189-
export TERM &&
190-
[ -t 1 ] &&
191-
tput bold >/dev/null 2>&1 &&
192-
tput setaf 1 >/dev/null 2>&1 &&
193-
tput sgr0 >/dev/null 2>&1
194-
) &&
195-
color=t
196187

188+
unset color
197189
while test "$#" -ne 0
198190
do
199191
case "$1" in
@@ -258,40 +250,6 @@ then
258250
verbose=t
259251
fi
260252

261-
if test -n "$color"
262-
then
263-
say_color () {
264-
(
265-
TERM=$ORIGINAL_TERM
266-
export TERM
267-
case "$1" in
268-
error)
269-
tput bold; tput setaf 1;; # bold red
270-
skip)
271-
tput setaf 4;; # blue
272-
warn)
273-
tput setaf 3;; # brown/yellow
274-
pass)
275-
tput setaf 2;; # green
276-
info)
277-
tput setaf 6;; # cyan
278-
*)
279-
test -n "$quiet" && return;;
280-
esac
281-
shift
282-
printf "%s" "$*"
283-
tput sgr0
284-
echo
285-
)
286-
}
287-
else
288-
say_color() {
289-
test -z "$1" && test -n "$quiet" && return
290-
shift
291-
printf "%s\n" "$*"
292-
}
293-
fi
294-
295253
error () {
296254
say_color error "error: $*"
297255
GIT_EXIT_OK=t
@@ -684,7 +642,7 @@ test_done () {
684642
then
685643
error "Can't use skip_all after running some tests"
686644
fi
687-
[ -z "$skip_all" ] || skip_all=" # SKIP $skip_all"
645+
test -z "$skip_all" || skip_all=" # SKIP $skip_all"
688646

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

818+
# run the tput tests *after* changing HOME (in case ncurses needs
819+
# ~/.terminfo for $TERM)
820+
test -n "${color+set}" || test "x$ORIGINAL_TERM" != "xdumb" && (
821+
TERM=$ORIGINAL_TERM &&
822+
export TERM &&
823+
test -t 1 &&
824+
tput bold >/dev/null 2>&1 &&
825+
tput setaf 1 >/dev/null 2>&1 &&
826+
tput sgr0 >/dev/null 2>&1
827+
) &&
828+
color=t
829+
830+
if test -n "$color"
831+
then
832+
say_color () {
833+
(
834+
TERM=$ORIGINAL_TERM
835+
export TERM
836+
case "$1" in
837+
error)
838+
tput bold; tput setaf 1;; # bold red
839+
skip)
840+
tput setaf 4;; # blue
841+
warn)
842+
tput setaf 3;; # brown/yellow
843+
pass)
844+
tput setaf 2;; # green
845+
info)
846+
tput setaf 6;; # cyan
847+
*)
848+
test -n "$quiet" && return;;
849+
esac
850+
shift
851+
printf "%s" "$*"
852+
tput sgr0
853+
echo
854+
)
855+
}
856+
else
857+
say_color() {
858+
test -z "$1" && test -n "$quiet" && return
859+
shift
860+
printf "%s\n" "$*"
861+
}
862+
fi
863+
860864
if test -z "$TEST_NO_CREATE_REPO"
861865
then
862866
test_create_repo "$TRASH_DIRECTORY"

0 commit comments

Comments
 (0)