Re: [PATCH 3/2] t5547-push-quarantine: run the path separator test on Windows, too
From: Junio C Hamano <hidden>
Date: 2016-12-13 19:27:16
Johannes Sixt [off-list ref] writes:
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 <redacted> --- Am 12.12.2016 um 20:53 schrieb Jeff King:quoted
Johannes, please let me know if I am wrong about skipping the test on !MINGW. The appropriate check there would be ";" anyway, but I am not sure _that_ is allowed in paths, either.Here is a version for Windows. I'd prefer this patch on top instead of squashing it into yours to keep the $PWD vs. $(pwd) explanation. The result is the same as yours in all practical matters; but this version I have already tested.
Will queue (I would wait for peff@ to say "OK", but I suspect he would be OK in this case). Thanks.
quoted hunk
t/t5547-push-quarantine.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)diff --git a/t/t5547-push-quarantine.sh b/t/t5547-push-quarantine.sh index 6275ec807b..af9fcd833a 100755 --- a/t/t5547-push-quarantine.sh +++ b/t/t5547-push-quarantine.sh@@ -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