git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH js/submodule-relative] t7400: avoid path mangling issues
@ 2012-06-14 12:10 Johannes Sixt
  2012-06-14 13:11 ` Jon Seymour
  0 siblings, 1 reply; 2+ messages in thread
From: Johannes Sixt @ 2012-06-14 12:10 UTC (permalink / raw)
  To: Jon Seymour; +Cc: Junio C Hamano, Git Mailing List

From: Johannes Sixt <j6t@kdbg.org>

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>
---
 Sorry, Jon, Junio, for the resend. Forgot to Cc the list.

 t/t7400-submodule-basic.sh | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index a899e6d..c73bec9 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -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"
 	)
 '
 
-- 
1.7.11.rc3.1188.ga03e3fc

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH js/submodule-relative] t7400: avoid path mangling issues
  2012-06-14 12:10 [PATCH js/submodule-relative] t7400: avoid path mangling issues Johannes Sixt
@ 2012-06-14 13:11 ` Jon Seymour
  0 siblings, 0 replies; 2+ messages in thread
From: Jon Seymour @ 2012-06-14 13:11 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: Junio C Hamano, Git Mailing List

On Thu, Jun 14, 2012 at 10:10 PM, Johannes Sixt <j.sixt@viscovery.net> wrote:
> From: Johannes Sixt <j6t@kdbg.org>
>
> 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>
> ---
>  Sorry, Jon, Junio, for the resend. Forgot to Cc the list.
>
>  t/t7400-submodule-basic.sh | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
> index a899e6d..c73bec9 100755
> --- a/t/t7400-submodule-basic.sh
> +++ b/t/t7400-submodule-basic.sh
> @@ -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"
>        )
>  '
>
> --
> 1.7.11.rc3.1188.ga03e3fc

Thank you for the report and the test case.

jon.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-06-14 13:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-14 12:10 [PATCH js/submodule-relative] t7400: avoid path mangling issues Johannes Sixt
2012-06-14 13:11 ` Jon Seymour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).