test-lib.sh: do not "echo" caller-supplied strings

In some places we "echo" a string that is supplied by the calling
test script and may contain backslash sequences. The echo command
of some shells, most notably "dash", interprets these backslash
sequences (POSIX.1 allows this) which may scramble the test
output.

Signed-off-by: Uwe Storbeck <uwe@ibr.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Uwe Storbeck 2014-03-18 01:14:11 +01:00 committed by Junio C Hamano
parent 47be066026
commit cb1aefda53

View file

@ -277,7 +277,7 @@ error "Test script did not set test_description."
if test "$help" = "t"
then
echo "$test_description"
printf '%s\n' "$test_description"
exit 0
fi
@ -328,7 +328,7 @@ test_failure_ () {
test_failure=$(($test_failure + 1))
say_color error "not ok $test_count - $1"
shift
echo "$@" | sed -e 's/^/# /'
printf '%s\n' "$*" | sed -e 's/^/# /'
test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; }
}