1#!/bin/sh
2
3test_description='cd_to_toplevel'
4
5. ./test-lib.sh
6
7EXEC_PATH="$(git --exec-path)"
8test_have_prereq !MINGW ||
9case "$EXEC_PATH" in
10[A-Za-z]:/*)
11 EXEC_PATH="/${EXEC_PATH%%:*}${EXEC_PATH#?:}"
12 ;;
13esac
14
15test_cd_to_toplevel () {
16 test_expect_success $3 "$2" '
17 (
18 cd '"'$1'"' &&
19 PATH="$EXEC_PATH:$PATH" &&
20 . git-sh-setup &&
21 cd_to_toplevel &&
22 [ "$(pwd -P)" = "$TOPLEVEL" ]
23 )
24 '
25}
26
27TOPLEVEL="$(pwd -P)/repo"
28mkdir -p repo/sub/dir
29mv .git repo/
30SUBDIRECTORY_OK=1
31
32test_cd_to_toplevel repo 'at physical root'
33
34test_cd_to_toplevel repo/sub/dir 'at physical subdir'
35
36ln -s repo symrepo 2>/dev/null
37test_cd_to_toplevel symrepo 'at symbolic root' SYMLINKS
38
39ln -s repo/sub/dir subdir-link 2>/dev/null
40test_cd_to_toplevel subdir-link 'at symbolic subdir' SYMLINKS
41
42cd repo
43ln -s sub/dir internal-link 2>/dev/null
44test_cd_to_toplevel internal-link 'at internal symbolic subdir' SYMLINKS
45
46test_done