t7400: avoid path mangling issues
authorJohannes Sixt <j6t@kdbg.org>
Thu, 14 Jun 2012 12:10:27 +0000 (14:10 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Jun 2012 18:00:06 +0000 (11:00 -0700)
A recently introduced test uses an absolute path. But when run on Windows
using the MSYS bash, such a path is mangled into a Windows style path when
it is passed to 'git config'. The subsequent 'test' then compares the
mangled path to the unmangled version and reports a failure.

A path beginning with two slashes denotes a network directory
(//server/share path) and is not mangled. Use that trick to side-step the
issue. Just in case that 'git submodule init' regresses in such a way that
it accesses the URL, use a path name that is unlikely to exist on POSIX
systems, and that cannot be a server name on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7400-submodule-basic.sh
index a899e6dbf5812f77183bd7e5d6a7be3afc8a49ef..c73bec9551eb27dab25aad69c83ae7ce9f9b11a8 100755 (executable)
@@ -510,14 +510,19 @@ test_expect_success '../subrepo works with port-qualified URL - ssh://hostname:2
        )
 '
 
-test_expect_success '../subrepo path works with local path - /foo/repo' '
+# About the choice of the path in the next test:
+# - double-slash side-steps path mangling issues on Windows
+# - it is still an absolute local path
+# - there cannot be a server with a blank in its name just in case the
+#   path is used erroneously to access a //server/share style path
+test_expect_success '../subrepo path works with local path - //somewhere else/repo' '
        (
                cd reltest &&
                cp pristine-.git-config .git/config &&
                cp pristine-.gitmodules .gitmodules &&
-               git config remote.origin.url /foo/repo &&
+               git config remote.origin.url "//somewhere else/repo" &&
                git submodule init &&
-               test "$(git config submodule.sub.url)" = /foo/subrepo
+               test "$(git config submodule.sub.url)" = "//somewhere else/subrepo"
        )
 '