1#!/bin/sh
2
3test_description='various UNC path tests (Windows-only)'
4. ./test-lib.sh
5
6if ! test_have_prereq MINGW; then
7 skip_all='skipping UNC path tests, requires Windows'
8 test_done
9fi
10
11UNCPATH="$(pwd)"
12case "$UNCPATH" in
13[A-Z]:*)
14 # Use administrative share e.g. \\localhost\C$\git-sdk-64\usr\src\git
15 # (we use forward slashes here because MSYS2 and Git accept them, and
16 # they are easier on the eyes)
17 UNCPATH="//localhost/${UNCPATH%%:*}\$/${UNCPATH#?:}"
18 test -d "$UNCPATH" || {
19 skip_all='could not access administrative share; skipping'
20 test_done
21 }
22 ;;
23*)
24 skip_all='skipping UNC path tests, cannot determine current path as UNC'
25 test_done
26 ;;
27esac
28
29test_expect_success setup '
30 test_commit initial
31'
32
33test_expect_success clone '
34 git clone "file://$UNCPATH" clone
35'
36
37test_expect_success push '
38 (
39 cd clone &&
40 git checkout -b to-push &&
41 test_commit to-push &&
42 git push origin HEAD
43 ) &&
44 rev="$(git -C clone rev-parse --verify refs/heads/to-push)" &&
45 test "$rev" = "$(git rev-parse --verify refs/heads/to-push)"
46'
47
48test_done