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>

Uwe Storbeck committed Mar 18, 2014 at 01:14 UTC cb1aefda53aac7c5e8bda58ed86f0682730b330b
1 file changed +2 -2
t/test-lib.sh
+2 -2
@@ -277,7 +277,7 @@ error "Test script did not set test_description."
277
278 if test "$help" = "t"
279 then
280 - echo "$test_description"
280 + printf '%s\n' "$test_description"
281 exit 0
282 fi
283
@@ -328,7 +328,7 @@ test_failure_ () {
328 test_failure=$(($test_failure + 1))
329 say_color error "not ok $test_count - $1"
330 shift
331 - echo "$@" | sed -e 's/^/# /'
331 + printf '%s\n' "$*" | sed -e 's/^/# /'
332 test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; }
333 }
334