t5547-push-quarantine: run the path separator test on Windows, too
authorJohannes Sixt <j6t@kdbg.org>
Tue, 13 Dec 2016 19:09:31 +0000 (20:09 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Dec 2016 19:15:10 +0000 (11:15 -0800)
To perform the test case on Windows in a way that corresponds to the
POSIX version, inject the semicolon in a directory name.

Typically, an absolute POSIX style path, such as the one in $PWD, is
translated into a Windows style path by bash when it invokes git.exe.
However, the presence of the semicolon suppresses this translation;
but the untranslated POSIX style path is useless for git.exe.
Therefore, instead of $PWD pass the Windows style path that $(pwd)
produces.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5547-push-quarantine.sh
index 6275ec807bf80da9c71155cf8c7c6f9cae68d6c3..af9fcd833a5e9e4997dd5cb917ac13f4b07f10ab 100755 (executable)
@@ -33,8 +33,7 @@ test_expect_success 'rejected objects are removed' '
        test_cmp expect actual
 '
 
-# MINGW does not allow colons in pathnames in the first place
-test_expect_success !MINGW 'push to repo path with colon' '
+test_expect_success 'push to repo path with path separator (colon)' '
        # The interesting failure case here is when the
        # receiving end cannot access its original object directory,
        # so make it likely for us to generate a delta by having
@@ -43,13 +42,20 @@ test_expect_success !MINGW 'push to repo path with colon' '
        test-genrandom foo 4096 >file.bin &&
        git add file.bin &&
        git commit -m bin &&
-       git clone --bare . xxx:yyy.git &&
+
+       if test_have_prereq MINGW
+       then
+               pathsep=";"
+       else
+               pathsep=":"
+       fi &&
+       git clone --bare . "xxx${pathsep}yyy.git" &&
 
        echo change >>file.bin &&
        git commit -am change &&
        # Note that we have to use the full path here, or it gets confused
        # with the ssh host:path syntax.
-       git push "$PWD/xxx:yyy.git" HEAD
+       git push "$(pwd)/xxx${pathsep}yyy.git" HEAD
 '
 
 test_done