3 test_description
='test GIT_CEILING_DIRECTORIES'
5 TEST_PASSES_SANITIZE_LEAK
=true
9 test_expect_success
"$1" \
10 "test '$2' = \"\$(git rev-parse --show-prefix)\""
14 test_expect_success
"$1: prefix" '
15 test_expect_code 128 git rev-parse --show-prefix
20 ROOT_PARENT
=$
(dirname "$TRASH_ROOT")
23 unset GIT_CEILING_DIRECTORIES
24 test_prefix no_ceil
""
26 export GIT_CEILING_DIRECTORIES
28 GIT_CEILING_DIRECTORIES
=""
29 test_prefix ceil_empty
""
31 GIT_CEILING_DIRECTORIES
="$ROOT_PARENT"
32 test_prefix ceil_at_parent
""
34 GIT_CEILING_DIRECTORIES
="$ROOT_PARENT/"
35 test_prefix ceil_at_parent_slash
""
37 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT"
38 test_prefix ceil_at_trash
""
40 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/"
41 test_prefix ceil_at_trash_slash
""
43 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub"
44 test_prefix ceil_at_sub
""
46 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub/"
47 test_prefix ceil_at_sub_slash
""
49 if test_have_prereq SYMLINKS
54 mkdir
-p sub
/dir ||
exit 1
57 unset GIT_CEILING_DIRECTORIES
58 test_prefix subdir_no_ceil
"sub/dir/"
60 export GIT_CEILING_DIRECTORIES
62 GIT_CEILING_DIRECTORIES
=""
63 test_prefix subdir_ceil_empty
"sub/dir/"
65 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT"
66 test_fail subdir_ceil_at_trash
68 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/"
69 test_fail subdir_ceil_at_trash_slash
71 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub"
72 test_fail subdir_ceil_at_sub
74 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub/"
75 test_fail subdir_ceil_at_sub_slash
77 if test_have_prereq SYMLINKS
79 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/top"
80 test_fail subdir_ceil_at_top
81 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/top/"
82 test_fail subdir_ceil_at_top_slash
84 GIT_CEILING_DIRECTORIES
=":$TRASH_ROOT/top"
85 test_prefix subdir_ceil_at_top_no_resolve
"sub/dir/"
86 GIT_CEILING_DIRECTORIES
=":$TRASH_ROOT/top/"
87 test_prefix subdir_ceil_at_top_slash_no_resolve
"sub/dir/"
90 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub/dir"
91 test_prefix subdir_ceil_at_subdir
"sub/dir/"
93 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub/dir/"
94 test_prefix subdir_ceil_at_subdir_slash
"sub/dir/"
97 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/su"
98 test_prefix subdir_ceil_at_su
"sub/dir/"
100 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/su/"
101 test_prefix subdir_ceil_at_su_slash
"sub/dir/"
103 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub/di"
104 test_prefix subdir_ceil_at_sub_di
"sub/dir/"
106 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub/di"
107 test_prefix subdir_ceil_at_sub_di_slash
"sub/dir/"
109 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/subdi"
110 test_prefix subdir_ceil_at_subdi
"sub/dir/"
112 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/subdi"
113 test_prefix subdir_ceil_at_subdi_slash
"sub/dir/"
116 GIT_CEILING_DIRECTORIES
="/foo:$TRASH_ROOT/sub"
117 test_fail second_of_two
119 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub:/bar"
120 test_fail first_of_two
122 GIT_CEILING_DIRECTORIES
="/foo:$TRASH_ROOT/sub:/bar"
123 test_fail second_of_three
126 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sub"
129 test_prefix git_dir_specified
""
134 mkdir
-p s
/d ||
exit 1
137 unset GIT_CEILING_DIRECTORIES
138 test_prefix sd_no_ceil
"s/d/"
140 export GIT_CEILING_DIRECTORIES
142 GIT_CEILING_DIRECTORIES
=""
143 test_prefix sd_ceil_empty
"s/d/"
145 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT"
146 test_fail sd_ceil_at_trash
148 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/"
149 test_fail sd_ceil_at_trash_slash
151 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/s"
152 test_fail sd_ceil_at_s
154 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/s/"
155 test_fail sd_ceil_at_s_slash
157 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/s/d"
158 test_prefix sd_ceil_at_sd
"s/d/"
160 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/s/d/"
161 test_prefix sd_ceil_at_sd_slash
"s/d/"
164 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/su"
165 test_prefix sd_ceil_at_su
"s/d/"
167 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/su/"
168 test_prefix sd_ceil_at_su_slash
"s/d/"
170 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/s/di"
171 test_prefix sd_ceil_at_s_di
"s/d/"
173 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/s/di"
174 test_prefix sd_ceil_at_s_di_slash
"s/d/"
176 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sdi"
177 test_prefix sd_ceil_at_sdi
"s/d/"
179 GIT_CEILING_DIRECTORIES
="$TRASH_ROOT/sdi"
180 test_prefix sd_ceil_at_sdi_slash
"s/d/"