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