Merge branch 'js/mingw-test-push-unc-path'
authorJunio C Hamano <gitster@pobox.com>
Wed, 18 Jan 2017 23:12:14 +0000 (15:12 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Jan 2017 23:12:14 +0000 (15:12 -0800)
"git push \\server\share\dir" has recently regressed and then
fixed. A test has retroactively been added for this breakage.

* js/mingw-test-push-unc-path:
mingw: add a regression test for pushing to UNC paths

t/t5580-clone-push-unc.sh [new file with mode: 0755]
diff --git a/t/t5580-clone-push-unc.sh b/t/t5580-clone-push-unc.sh
new file mode 100755 (executable)
index 0000000..b195f71
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+test_description='various UNC path tests (Windows-only)'
+. ./test-lib.sh
+
+if ! test_have_prereq MINGW; then
+       skip_all='skipping UNC path tests, requires Windows'
+       test_done
+fi
+
+UNCPATH="$(pwd)"
+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 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_done