]> git.ipfire.org Git - thirdparty/git.git/blame - t/t1504-ceiling-dirs.sh
The third batch
[thirdparty/git.git] / t / t1504-ceiling-dirs.sh
CommitLineData
0454dd93
DR
1#!/bin/sh
2
3test_description='test GIT_CEILING_DIRECTORIES'
288a4806
ÆAB
4
5TEST_PASSES_SANITIZE_LEAK=true
0454dd93
DR
6. ./test-lib.sh
7
8test_prefix() {
4bd0785d
ÆAB
9 local expect="$2" &&
10 test_expect_success "$1: git rev-parse --show-prefix is '$2'" '
11 echo "$expect" >expect &&
12 git rev-parse --show-prefix >actual &&
13 test_cmp expect actual
14 '
0454dd93
DR
15}
16
17test_fail() {
892e6f7e
ÆAB
18 test_expect_success "$1: prefix" '
19 test_expect_code 128 git rev-parse --show-prefix
20 '
0454dd93
DR
21}
22
4114156a 23TRASH_ROOT="$PWD"
0454dd93
DR
24ROOT_PARENT=$(dirname "$TRASH_ROOT")
25
26
27unset GIT_CEILING_DIRECTORIES
28test_prefix no_ceil ""
29
30export GIT_CEILING_DIRECTORIES
31
32GIT_CEILING_DIRECTORIES=""
33test_prefix ceil_empty ""
34
35GIT_CEILING_DIRECTORIES="$ROOT_PARENT"
36test_prefix ceil_at_parent ""
37
38GIT_CEILING_DIRECTORIES="$ROOT_PARENT/"
39test_prefix ceil_at_parent_slash ""
40
41GIT_CEILING_DIRECTORIES="$TRASH_ROOT"
42test_prefix ceil_at_trash ""
43
44GIT_CEILING_DIRECTORIES="$TRASH_ROOT/"
45test_prefix ceil_at_trash_slash ""
46
47GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub"
48test_prefix ceil_at_sub ""
49
50GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/"
51test_prefix ceil_at_sub_slash ""
52
7ec30aaa
MH
53if test_have_prereq SYMLINKS
54then
55 ln -s sub top
56fi
0454dd93
DR
57
58mkdir -p sub/dir || exit 1
59cd sub/dir || exit 1
60
61unset GIT_CEILING_DIRECTORIES
62test_prefix subdir_no_ceil "sub/dir/"
63
64export GIT_CEILING_DIRECTORIES
65
66GIT_CEILING_DIRECTORIES=""
67test_prefix subdir_ceil_empty "sub/dir/"
68
69GIT_CEILING_DIRECTORIES="$TRASH_ROOT"
70test_fail subdir_ceil_at_trash
71
72GIT_CEILING_DIRECTORIES="$TRASH_ROOT/"
73test_fail subdir_ceil_at_trash_slash
74
75GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub"
76test_fail subdir_ceil_at_sub
77
78GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/"
79test_fail subdir_ceil_at_sub_slash
80
7ec30aaa
MH
81if test_have_prereq SYMLINKS
82then
83 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top"
84 test_fail subdir_ceil_at_top
85 GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top/"
86 test_fail subdir_ceil_at_top_slash
87
88 GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top"
89 test_prefix subdir_ceil_at_top_no_resolve "sub/dir/"
90 GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top/"
91 test_prefix subdir_ceil_at_top_slash_no_resolve "sub/dir/"
92fi
93
0454dd93
DR
94GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir"
95test_prefix subdir_ceil_at_subdir "sub/dir/"
96
97GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/dir/"
98test_prefix subdir_ceil_at_subdir_slash "sub/dir/"
99
100
101GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su"
102test_prefix subdir_ceil_at_su "sub/dir/"
103
104GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su/"
105test_prefix subdir_ceil_at_su_slash "sub/dir/"
106
107GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/di"
108test_prefix subdir_ceil_at_sub_di "sub/dir/"
109
110GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub/di"
111test_prefix subdir_ceil_at_sub_di_slash "sub/dir/"
112
113GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi"
114test_prefix subdir_ceil_at_subdi "sub/dir/"
115
116GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi"
117test_prefix subdir_ceil_at_subdi_slash "sub/dir/"
118
119
43a7ddb5 120GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub"
0454dd93
DR
121test_fail second_of_two
122
43a7ddb5 123GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub:/bar"
0454dd93
DR
124test_fail first_of_two
125
43a7ddb5 126GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub:/bar"
0454dd93
DR
127test_fail second_of_three
128
129
130GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub"
131GIT_DIR=../../.git
132export GIT_DIR
133test_prefix git_dir_specified ""
134unset GIT_DIR
135
136
137cd ../.. || exit 1
138mkdir -p s/d || exit 1
139cd s/d || exit 1
140
141unset GIT_CEILING_DIRECTORIES
142test_prefix sd_no_ceil "s/d/"
143
144export GIT_CEILING_DIRECTORIES
145
146GIT_CEILING_DIRECTORIES=""
147test_prefix sd_ceil_empty "s/d/"
148
149GIT_CEILING_DIRECTORIES="$TRASH_ROOT"
150test_fail sd_ceil_at_trash
151
152GIT_CEILING_DIRECTORIES="$TRASH_ROOT/"
153test_fail sd_ceil_at_trash_slash
154
155GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s"
156test_fail sd_ceil_at_s
157
158GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/"
159test_fail sd_ceil_at_s_slash
160
161GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/d"
162test_prefix sd_ceil_at_sd "s/d/"
163
164GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/d/"
165test_prefix sd_ceil_at_sd_slash "s/d/"
166
167
168GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su"
169test_prefix sd_ceil_at_su "s/d/"
170
171GIT_CEILING_DIRECTORIES="$TRASH_ROOT/su/"
172test_prefix sd_ceil_at_su_slash "s/d/"
173
174GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/di"
175test_prefix sd_ceil_at_s_di "s/d/"
176
177GIT_CEILING_DIRECTORIES="$TRASH_ROOT/s/di"
178test_prefix sd_ceil_at_s_di_slash "s/d/"
179
180GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sdi"
181test_prefix sd_ceil_at_sdi "s/d/"
182
183GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sdi"
184test_prefix sd_ceil_at_sdi_slash "s/d/"
185
186
187test_done