diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-02-17 13:22:18 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-02-17 13:22:18 -0800 |
commit | fc25a19265deb84170aab1216228d4e817a17d15 (patch) | |
tree | 9e3a53b019184c3fdd7f70b8f37f47106b149794 /t/t5580-unc-paths.sh | |
parent | Merge branch 'js/test-avoid-pipe' (diff) | |
parent | t5580: test cloning without file://, test fetching via UNC paths (diff) | |
download | tgif-fc25a19265deb84170aab1216228d4e817a17d15.tar.xz |
Merge branch 'js/test-unc-fetch'
Test updates.
* js/test-unc-fetch:
t5580: test cloning without file://, test fetching via UNC paths
Diffstat (limited to 't/t5580-unc-paths.sh')
-rwxr-xr-x | t/t5580-unc-paths.sh | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/t/t5580-unc-paths.sh b/t/t5580-unc-paths.sh new file mode 100755 index 0000000000..cf768b3a27 --- /dev/null +++ b/t/t5580-unc-paths.sh @@ -0,0 +1,89 @@ +#!/bin/sh + +test_description='various Windows-only path tests' +. ./test-lib.sh + +if test_have_prereq CYGWIN +then + alias winpwd='cygpath -aw .' +elif test_have_prereq MINGW +then + alias winpwd=pwd +else + skip_all='skipping Windows-only path tests' + test_done +fi + +UNCPATH="$(winpwd)" +case "$UNCPATH" in +[A-Z]:*) + # Use administrative share e.g. \\localhost\C$\git-sdk-64\usr\src\git + # (we use forward slashes here because MSYS2 and Git accept them, and + # they are easier on the eyes) + UNCPATH="//localhost/${UNCPATH%%:*}\$/${UNCPATH#?:}" + test -d "$UNCPATH" || { + skip_all='could not access administrative share; skipping' + test_done + } + ;; +*) + skip_all='skipping UNC path tests, cannot determine current path as UNC' + test_done + ;; +esac + +test_expect_success setup ' + test_commit initial +' + +test_expect_success clone ' + git clone "file://$UNCPATH" clone +' + +test_expect_success 'clone without file://' ' + git clone "$UNCPATH" clone-without-file +' + +test_expect_success 'clone with backslashed path' ' + BACKSLASHED="$(echo "$UNCPATH" | tr / \\\\)" && + git clone "$BACKSLASHED" backslashed +' + +test_expect_success fetch ' + git init to-fetch && + ( + cd to-fetch && + git fetch "$UNCPATH" master + ) +' + +test_expect_success push ' + ( + cd clone && + git checkout -b to-push && + test_commit to-push && + git push origin HEAD + ) && + rev="$(git -C clone rev-parse --verify refs/heads/to-push)" && + test "$rev" = "$(git rev-parse --verify refs/heads/to-push)" +' + +test_expect_success MINGW 'remote nick cannot contain backslashes' ' + BACKSLASHED="$(winpwd | tr / \\\\)" && + git ls-remote "$BACKSLASHED" 2>err && + test_i18ngrep ! "unable to access" err +' + +test_expect_success 'unc alternates' ' + tree="$(git rev-parse HEAD:)" && + mkdir test-unc-alternate && + ( + cd test-unc-alternate && + git init && + test_must_fail git show $tree && + echo "$UNCPATH/.git/objects" >.git/objects/info/alternates && + git show $tree + ) +' + +test_done |