]> Kevux Git Server - rit/commitdiff
test-lib.sh: do not "echo" caller-supplied strings
authorUwe Storbeck <uwe@ibr.ch>
Tue, 18 Mar 2014 00:14:11 +0000 (01:14 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 18 Mar 2014 18:48:00 +0000 (11:48 -0700)
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>
t/test-lib.sh

index 1531c24..3c7cb1d 100644 (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; }
 }