t5547-push-quarantine: run the path separator test on Windows, too
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>
Johannes Sixt committed
Dec 13, 2016 at 20:09 UTC
eaa76de0dff57f13a6fb7f791f3a486a407f5c27
1 file changed
+10
-4
t/t5547-push-quarantine.sh
+10
-4
@@ -33,8 +33,7 @@ test_expect_success 'rejected objects are removed' '
33
test_cmp expect actual
34
'
35
36
-# MINGW does not allow colons in pathnames in the first place
37
-test_expect_success !MINGW 'push to repo path with colon' '
36
+test_expect_success 'push to repo path with path separator (colon)' '
37
# The interesting failure case here is when the
38
# receiving end cannot access its original object directory,
39
# 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' '
42
test-genrandom foo 4096 >file.bin &&
43
git add file.bin &&
44
git commit -m bin &&
46
- git clone --bare . xxx:yyy.git &&
45
+
46
+ if test_have_prereq MINGW
47
+ then
48
+ pathsep=";"
49
+ else
50
+ pathsep=":"
51
+ fi &&
52
+ git clone --bare . "xxx${pathsep}yyy.git" &&
53
54
echo change >>file.bin &&
55
git commit -am change &&
56
# Note that we have to use the full path here, or it gets confused
57
# with the ssh host:path syntax.
52
- git push "$PWD/xxx:yyy.git" HEAD
58
+ git push "$(pwd)/xxx${pathsep}yyy.git" HEAD
59
'
60
61
test_done