t4151: make sure argument to 'test -z' is given
authorArmin Kunaschik <megabreit@googlemail.com>
Mon, 9 May 2016 18:57:25 +0000 (11:57 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 May 2016 20:45:22 +0000 (13:45 -0700)
88d50724 (am --skip: revert changes introduced by failed 3way merge,
2015-06-06), unlike all the other patches in the series, forgot to
quote the output from "$(git ls-files -u)" when using it as the
argument to "test -z", leading to a syntax error on platforms whose
test does not interpret "test -z" (no other arguments) as testing if
a string "-z" is the null string (which GNU test and test that is
built into bash and dash seem to do).

Note that $(git ls-files -u | wc -l) is deliberately left unquoted,
as some implementations of "wc -l" includes extra blank characters
in its output and cannot be compared as string, i.e. "test 0 = $(...)".

Signed-off-by: Armin Kunaschik <megabreit@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4151-am-abort.sh
index 833e7b2ceae99cbf53bac63e239b362e368ddf8f..b878c21d5dd5a0110894b515ca57c56162ac34d4 100755 (executable)
@@ -82,7 +82,7 @@ test_expect_success 'am -3 --abort removes otherfile-4' '
        test 4 = "$(cat otherfile-4)" &&
        git am --abort &&
        test_cmp_rev initial HEAD &&
-       test -z $(git ls-files -u) &&
+       test -z "$(git ls-files -u)" &&
        test_path_is_missing otherfile-4
 '