3 0e673013 2019-01-02 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
5 0e673013 2019-01-02 stsp # Permission to use, copy, modify, and distribute this software for any
6 0e673013 2019-01-02 stsp # purpose with or without fee is hereby granted, provided that the above
7 0e673013 2019-01-02 stsp # copyright notice and this permission notice appear in all copies.
9 0e673013 2019-01-02 stsp # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 0e673013 2019-01-02 stsp # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 0e673013 2019-01-02 stsp # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 0e673013 2019-01-02 stsp # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 0e673013 2019-01-02 stsp # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 0e673013 2019-01-02 stsp # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 0e673013 2019-01-02 stsp # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 0e673013 2019-01-02 stsp . ./common.sh
19 0e673013 2019-01-02 stsp function test_checkout_basic {
20 0e673013 2019-01-02 stsp local testroot=`test_init checkout_basic`
22 0e673013 2019-01-02 stsp echo "A $testroot/wt/alpha" > $testroot/stdout.expected
23 0e673013 2019-01-02 stsp echo "A $testroot/wt/beta" >> $testroot/stdout.expected
24 0e673013 2019-01-02 stsp echo "A $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
25 0e673013 2019-01-02 stsp echo "A $testroot/wt/gamma/delta" >> $testroot/stdout.expected
26 0e673013 2019-01-02 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
28 0e673013 2019-01-02 stsp got checkout $testroot/repo $testroot/wt > $testroot/stdout
30 e60e7f5b 2019-02-10 stsp if [ "$ret" != "0" ]; then
31 e60e7f5b 2019-02-10 stsp test_done "$testroot" "$ret"
35 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
37 e60e7f5b 2019-02-10 stsp if [ "$ret" != "0" ]; then
38 0e673013 2019-01-02 stsp diff -u $testroot/stdout.expected $testroot/stdout
39 e60e7f5b 2019-02-10 stsp test_done "$testroot" "$ret"
43 0e673013 2019-01-02 stsp echo "alpha" > $testroot/content.expected
44 0e673013 2019-01-02 stsp echo "beta" >> $testroot/content.expected
45 0e673013 2019-01-02 stsp echo "zeta" >> $testroot/content.expected
46 0e673013 2019-01-02 stsp echo "delta" >> $testroot/content.expected
47 0e673013 2019-01-02 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
48 0e673013 2019-01-02 stsp $testroot/wt/gamma/delta > $testroot/content
50 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
52 693719bc 2019-01-03 stsp if [ "$ret" != "0" ]; then
53 0e673013 2019-01-02 stsp diff -u $testroot/content.expected $testroot/content
55 693719bc 2019-01-03 stsp test_done "$testroot" "$ret"
58 80c1b583 2019-08-07 stsp function test_checkout_dir_exists {
59 80c1b583 2019-08-07 stsp local testroot=`test_init checkout_dir_exists`
61 80c1b583 2019-08-07 stsp echo "A $testroot/wt/alpha" > $testroot/stdout.expected
62 80c1b583 2019-08-07 stsp echo "A $testroot/wt/beta" >> $testroot/stdout.expected
63 80c1b583 2019-08-07 stsp echo "A $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
64 80c1b583 2019-08-07 stsp echo "A $testroot/wt/gamma/delta" >> $testroot/stdout.expected
65 80c1b583 2019-08-07 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
67 80c1b583 2019-08-07 stsp mkdir $testroot/wt
69 80c1b583 2019-08-07 stsp got checkout $testroot/repo $testroot/wt > $testroot/stdout
71 80c1b583 2019-08-07 stsp if [ "$ret" != "0" ]; then
72 80c1b583 2019-08-07 stsp test_done "$testroot" "$ret"
76 80c1b583 2019-08-07 stsp cmp -s $testroot/stdout.expected $testroot/stdout
78 80c1b583 2019-08-07 stsp if [ "$ret" != "0" ]; then
79 80c1b583 2019-08-07 stsp diff -u $testroot/stdout.expected $testroot/stdout
80 80c1b583 2019-08-07 stsp test_done "$testroot" "$ret"
84 80c1b583 2019-08-07 stsp echo "alpha" > $testroot/content.expected
85 80c1b583 2019-08-07 stsp echo "beta" >> $testroot/content.expected
86 80c1b583 2019-08-07 stsp echo "zeta" >> $testroot/content.expected
87 80c1b583 2019-08-07 stsp echo "delta" >> $testroot/content.expected
88 80c1b583 2019-08-07 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
89 80c1b583 2019-08-07 stsp $testroot/wt/gamma/delta > $testroot/content
91 80c1b583 2019-08-07 stsp cmp -s $testroot/content.expected $testroot/content
93 80c1b583 2019-08-07 stsp if [ "$ret" != "0" ]; then
94 80c1b583 2019-08-07 stsp diff -u $testroot/content.expected $testroot/content
96 80c1b583 2019-08-07 stsp test_done "$testroot" "$ret"
99 80c1b583 2019-08-07 stsp function test_checkout_dir_not_empty {
100 80c1b583 2019-08-07 stsp local testroot=`test_init checkout_dir_not_empty`
102 80c1b583 2019-08-07 stsp echo "A $testroot/wt/alpha" > $testroot/stdout.expected
103 80c1b583 2019-08-07 stsp echo "A $testroot/wt/beta" >> $testroot/stdout.expected
104 80c1b583 2019-08-07 stsp echo "A $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
105 80c1b583 2019-08-07 stsp echo "A $testroot/wt/gamma/delta" >> $testroot/stdout.expected
106 80c1b583 2019-08-07 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
108 80c1b583 2019-08-07 stsp mkdir $testroot/wt
109 80c1b583 2019-08-07 stsp touch $testroot/wt/foo
111 80c1b583 2019-08-07 stsp got checkout $testroot/repo $testroot/wt > $testroot/stdout \
112 80c1b583 2019-08-07 stsp 2> $testroot/stderr
114 80c1b583 2019-08-07 stsp if [ "$ret" == "0" ]; then
115 80c1b583 2019-08-07 stsp echo "checkout succeeded unexpectedly" >&2
116 80c1b583 2019-08-07 stsp test_done "$testroot" "1"
120 80c1b583 2019-08-07 stsp echo "got: $testroot/wt: directory exists and is not empty" \
121 80c1b583 2019-08-07 stsp > $testroot/stderr.expected
122 80c1b583 2019-08-07 stsp cmp -s $testroot/stderr.expected $testroot/stderr
124 80c1b583 2019-08-07 stsp if [ "$ret" != "0" ]; then
125 80c1b583 2019-08-07 stsp diff -u $testroot/stderr.expected $testroot/stderr
126 80c1b583 2019-08-07 stsp test_done "$testroot" "$ret"
130 80c1b583 2019-08-07 stsp echo -n > $testroot/stdout.expected
131 80c1b583 2019-08-07 stsp cmp -s $testroot/stdout.expected $testroot/stdout
133 80c1b583 2019-08-07 stsp if [ "$ret" != "0" ]; then
134 80c1b583 2019-08-07 stsp diff -u $testroot/stdout.expected $testroot/stdout
136 80c1b583 2019-08-07 stsp test_done "$testroot" "$ret"
140 68ed9ba5 2019-02-10 stsp function test_checkout_sets_xbit {
141 68ed9ba5 2019-02-10 stsp local testroot=`test_init checkout_sets_xbit 1`
143 68ed9ba5 2019-02-10 stsp touch $testroot/repo/xfile
144 68ed9ba5 2019-02-10 stsp chmod +x $testroot/repo/xfile
145 68ed9ba5 2019-02-10 stsp (cd $testroot/repo && git add .)
146 68ed9ba5 2019-02-10 stsp git_commit $testroot/repo -m "adding executable file"
148 68ed9ba5 2019-02-10 stsp echo "A $testroot/wt/xfile" > $testroot/stdout.expected
149 68ed9ba5 2019-02-10 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
151 68ed9ba5 2019-02-10 stsp got checkout $testroot/repo $testroot/wt > $testroot/stdout
153 68ed9ba5 2019-02-10 stsp if [ "$ret" != "0" ]; then
154 68ed9ba5 2019-02-10 stsp test_done "$testroot" "$ret"
158 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
160 68ed9ba5 2019-02-10 stsp if [ "$ret" != "0" ]; then
161 68ed9ba5 2019-02-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
162 68ed9ba5 2019-02-10 stsp test_done "$testroot" "$ret"
166 68ed9ba5 2019-02-10 stsp ls -l $testroot/wt/xfile | grep -q '^-rwx'
168 68ed9ba5 2019-02-10 stsp if [ "$ret" != "0" ]; then
169 68ed9ba5 2019-02-10 stsp echo "file is not executable" >&2
170 68ed9ba5 2019-02-10 stsp ls -l $testroot/wt/xfile >&2
172 68ed9ba5 2019-02-10 stsp test_done "$testroot" "$ret"
175 45d344f6 2019-05-14 stsp function test_checkout_commit_from_wrong_branch {
176 45d344f6 2019-05-14 stsp local testroot=`test_init checkout_commit_from_wrong_branch`
178 45d344f6 2019-05-14 stsp (cd $testroot/repo && git checkout -q -b newbranch)
179 45d344f6 2019-05-14 stsp echo "modified alpha on new branch" > $testroot/repo/alpha
180 45d344f6 2019-05-14 stsp git_commit $testroot/repo -m "modified alpha on new branch"
182 45d344f6 2019-05-14 stsp local head_rev=`git_show_head $testroot/repo`
183 45d344f6 2019-05-14 stsp got checkout -b master -c $head_rev $testroot/repo $testroot/wt \
184 45d344f6 2019-05-14 stsp > $testroot/stdout 2> $testroot/stderr
186 45d344f6 2019-05-14 stsp if [ "$ret" == "0" ]; then
187 45d344f6 2019-05-14 stsp test_done "$testroot" "1"
191 45d344f6 2019-05-14 stsp echo -n "" > $testroot/stdout.expected
192 45d344f6 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
194 45d344f6 2019-05-14 stsp if [ "$ret" != "0" ]; then
195 45d344f6 2019-05-14 stsp diff -u $testroot/stdout.expected $testroot/stdout
196 45d344f6 2019-05-14 stsp test_done "$testroot" "$ret"
200 4b6c9460 2020-03-05 stsp echo -n "got: target commit is not contained in branch 'master'; " \
201 45d344f6 2019-05-14 stsp > $testroot/stderr.expected
202 4b6c9460 2020-03-05 stsp echo -n "the branch to use must be specified with -b; if necessary " \
203 4b6c9460 2020-03-05 stsp >> $testroot/stderr.expected
204 4b6c9460 2020-03-05 stsp echo -n "a new branch can be created for this commit with "\
205 4b6c9460 2020-03-05 stsp >> $testroot/stderr.expected
206 4b6c9460 2020-03-05 stsp echo "'got branch -c $head_rev BRANCH_NAME'" \
207 4b6c9460 2020-03-05 stsp >> $testroot/stderr.expected
208 45d344f6 2019-05-14 stsp cmp -s $testroot/stderr.expected $testroot/stderr
210 45d344f6 2019-05-14 stsp if [ "$ret" != "0" ]; then
211 45d344f6 2019-05-14 stsp diff -u $testroot/stderr.expected $testroot/stderr
212 45d344f6 2019-05-14 stsp test_done "$testroot" "$ret"
216 45d344f6 2019-05-14 stsp test_done "$testroot" "$ret"
219 303e2782 2019-08-09 stsp function test_checkout_tag {
220 303e2782 2019-08-09 stsp local testroot=`test_init checkout_tag`
221 303e2782 2019-08-09 stsp local tag="1.0.0"
223 303e2782 2019-08-09 stsp (cd $testroot/repo && git tag -a -m "test" $tag)
225 303e2782 2019-08-09 stsp echo "A $testroot/wt/alpha" > $testroot/stdout.expected
226 303e2782 2019-08-09 stsp echo "A $testroot/wt/beta" >> $testroot/stdout.expected
227 303e2782 2019-08-09 stsp echo "A $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
228 303e2782 2019-08-09 stsp echo "A $testroot/wt/gamma/delta" >> $testroot/stdout.expected
229 303e2782 2019-08-09 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
231 303e2782 2019-08-09 stsp got checkout -c $tag $testroot/repo $testroot/wt > $testroot/stdout
233 303e2782 2019-08-09 stsp if [ "$ret" != "0" ]; then
234 303e2782 2019-08-09 stsp test_done "$testroot" "$ret"
238 303e2782 2019-08-09 stsp cmp -s $testroot/stdout.expected $testroot/stdout
240 303e2782 2019-08-09 stsp if [ "$ret" != "0" ]; then
241 303e2782 2019-08-09 stsp diff -u $testroot/stdout.expected $testroot/stdout
242 303e2782 2019-08-09 stsp test_done "$testroot" "$ret"
246 303e2782 2019-08-09 stsp echo "alpha" > $testroot/content.expected
247 303e2782 2019-08-09 stsp echo "beta" >> $testroot/content.expected
248 303e2782 2019-08-09 stsp echo "zeta" >> $testroot/content.expected
249 303e2782 2019-08-09 stsp echo "delta" >> $testroot/content.expected
250 303e2782 2019-08-09 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
251 303e2782 2019-08-09 stsp $testroot/wt/gamma/delta > $testroot/content
253 303e2782 2019-08-09 stsp cmp -s $testroot/content.expected $testroot/content
255 303e2782 2019-08-09 stsp if [ "$ret" != "0" ]; then
256 303e2782 2019-08-09 stsp diff -u $testroot/content.expected $testroot/content
258 303e2782 2019-08-09 stsp test_done "$testroot" "$ret"
261 63c5ca5d 2019-08-24 stsp function test_checkout_ignores_submodules {
262 63c5ca5d 2019-08-24 stsp local testroot=`test_init checkout_ignores_submodules`
264 e7303626 2020-05-14 stsp make_single_file_repo $testroot/repo2 foo
266 63c5ca5d 2019-08-24 stsp (cd $testroot/repo && git submodule -q add ../repo2)
267 63c5ca5d 2019-08-24 stsp (cd $testroot/repo && git commit -q -m 'adding submodule')
269 63c5ca5d 2019-08-24 stsp echo "A $testroot/wt/.gitmodules" > $testroot/stdout.expected
270 63c5ca5d 2019-08-24 stsp echo "A $testroot/wt/alpha" >> $testroot/stdout.expected
271 63c5ca5d 2019-08-24 stsp echo "A $testroot/wt/beta" >> $testroot/stdout.expected
272 63c5ca5d 2019-08-24 stsp echo "A $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
273 63c5ca5d 2019-08-24 stsp echo "A $testroot/wt/gamma/delta" >> $testroot/stdout.expected
274 63c5ca5d 2019-08-24 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
276 63c5ca5d 2019-08-24 stsp got checkout $testroot/repo $testroot/wt > $testroot/stdout
278 63c5ca5d 2019-08-24 stsp if [ "$ret" != "0" ]; then
279 63c5ca5d 2019-08-24 stsp test_done "$testroot" "$ret"
283 63c5ca5d 2019-08-24 stsp cmp -s $testroot/stdout.expected $testroot/stdout
285 63c5ca5d 2019-08-24 stsp if [ "$ret" != "0" ]; then
286 63c5ca5d 2019-08-24 stsp diff -u $testroot/stdout.expected $testroot/stdout
287 63c5ca5d 2019-08-24 stsp test_done "$testroot" "$ret"
291 63c5ca5d 2019-08-24 stsp echo "alpha" > $testroot/content.expected
292 63c5ca5d 2019-08-24 stsp echo "beta" >> $testroot/content.expected
293 63c5ca5d 2019-08-24 stsp echo "zeta" >> $testroot/content.expected
294 63c5ca5d 2019-08-24 stsp echo "delta" >> $testroot/content.expected
295 63c5ca5d 2019-08-24 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
296 63c5ca5d 2019-08-24 stsp $testroot/wt/gamma/delta > $testroot/content
298 63c5ca5d 2019-08-24 stsp cmp -s $testroot/content.expected $testroot/content
300 63c5ca5d 2019-08-24 stsp if [ "$ret" != "0" ]; then
301 63c5ca5d 2019-08-24 stsp diff -u $testroot/content.expected $testroot/content
303 63c5ca5d 2019-08-24 stsp test_done "$testroot" "$ret"
306 7f47418f 2019-12-20 stsp function test_checkout_read_only {
307 7f47418f 2019-12-20 stsp local testroot=`test_init checkout_read_only`
309 7f47418f 2019-12-20 stsp # Make the repostiory read-only
310 7f47418f 2019-12-20 stsp chmod -R a-w $testroot/repo
312 7f47418f 2019-12-20 stsp echo "A $testroot/wt/alpha" > $testroot/stdout.expected
313 7f47418f 2019-12-20 stsp echo "A $testroot/wt/beta" >> $testroot/stdout.expected
314 7f47418f 2019-12-20 stsp echo "A $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
315 7f47418f 2019-12-20 stsp echo "A $testroot/wt/gamma/delta" >> $testroot/stdout.expected
316 7f47418f 2019-12-20 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
318 7f47418f 2019-12-20 stsp got checkout $testroot/repo $testroot/wt \
319 7f47418f 2019-12-20 stsp > $testroot/stdout 2> $testroot/stderr
321 7f47418f 2019-12-20 stsp if [ "$ret" != "0" ]; then
322 7f47418f 2019-12-20 stsp test_done "$testroot" "$ret"
326 7f47418f 2019-12-20 stsp cmp -s $testroot/stdout.expected $testroot/stdout
328 7f47418f 2019-12-20 stsp if [ "$ret" != "0" ]; then
329 7f47418f 2019-12-20 stsp diff -u $testroot/stdout.expected $testroot/stdout
330 7f47418f 2019-12-20 stsp test_done "$testroot" "$ret"
334 7f47418f 2019-12-20 stsp echo -n "got: warning: could not create a reference " \
335 7f47418f 2019-12-20 stsp > $testroot/stderr.expected
336 7f47418f 2019-12-20 stsp echo -n "to the work tree's base commit; the commit could " \
337 7f47418f 2019-12-20 stsp >> $testroot/stderr.expected
338 7f47418f 2019-12-20 stsp echo -n "be garbage-collected by Git; making the repository " \
339 7f47418f 2019-12-20 stsp >> $testroot/stderr.expected
340 7f47418f 2019-12-20 stsp echo "writable and running 'got update' will prevent this" \
341 7f47418f 2019-12-20 stsp >> $testroot/stderr.expected
342 7f47418f 2019-12-20 stsp cmp -s $testroot/stderr.expected $testroot/stderr
344 7f47418f 2019-12-20 stsp if [ "$ret" != "0" ]; then
345 7f47418f 2019-12-20 stsp diff -u $testroot/stderr.expected $testroot/stderr
346 7f47418f 2019-12-20 stsp test_done "$testroot" "$ret"
350 7f47418f 2019-12-20 stsp echo "alpha" > $testroot/content.expected
351 7f47418f 2019-12-20 stsp echo "beta" >> $testroot/content.expected
352 7f47418f 2019-12-20 stsp echo "zeta" >> $testroot/content.expected
353 7f47418f 2019-12-20 stsp echo "delta" >> $testroot/content.expected
354 7f47418f 2019-12-20 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
355 7f47418f 2019-12-20 stsp $testroot/wt/gamma/delta > $testroot/content
357 7f47418f 2019-12-20 stsp cmp -s $testroot/content.expected $testroot/content
359 7f47418f 2019-12-20 stsp if [ "$ret" != "0" ]; then
360 7f47418f 2019-12-20 stsp diff -u $testroot/content.expected $testroot/content
362 7f47418f 2019-12-20 stsp chmod -R u+w $testroot/repo # make repo cleanup work
363 7f47418f 2019-12-20 stsp test_done "$testroot" "$ret"
366 bb51a5b4 2020-01-13 stsp function test_checkout_into_nonempty_dir {
367 bb51a5b4 2020-01-13 stsp local testroot=`test_init checkout_into_nonempty_dir`
369 bb51a5b4 2020-01-13 stsp mkdir -p $testroot/wt
370 bb51a5b4 2020-01-13 stsp make_test_tree $testroot/wt
372 bb51a5b4 2020-01-13 stsp got checkout $testroot/repo $testroot/wt > $testroot/stdout \
373 bb51a5b4 2020-01-13 stsp 2> $testroot/stderr
375 bb51a5b4 2020-01-13 stsp if [ "$ret" == "0" ]; then
376 bb51a5b4 2020-01-13 stsp echo "checkout succeeded unexpectedly" >&2
377 bb51a5b4 2020-01-13 stsp test_done "$testroot" "1"
381 bb51a5b4 2020-01-13 stsp echo -n > $testroot/stdout.expected
382 bb51a5b4 2020-01-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
384 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
385 bb51a5b4 2020-01-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
386 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
390 bb51a5b4 2020-01-13 stsp echo "got: $testroot/wt: directory exists and is not empty" \
391 bb51a5b4 2020-01-13 stsp > $testroot/stderr.expected
392 bb51a5b4 2020-01-13 stsp cmp -s $testroot/stderr.expected $testroot/stderr
394 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
395 bb51a5b4 2020-01-13 stsp diff -u $testroot/stderr.expected $testroot/stderr
396 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
400 bb51a5b4 2020-01-13 stsp echo "U $testroot/wt/alpha" > $testroot/stdout.expected
401 bb51a5b4 2020-01-13 stsp echo "U $testroot/wt/beta" >> $testroot/stdout.expected
402 bb51a5b4 2020-01-13 stsp echo "U $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
403 bb51a5b4 2020-01-13 stsp echo "U $testroot/wt/gamma/delta" >> $testroot/stdout.expected
404 bb51a5b4 2020-01-13 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
406 bb51a5b4 2020-01-13 stsp got checkout -E $testroot/repo $testroot/wt > $testroot/stdout
408 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
409 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
413 bb51a5b4 2020-01-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
415 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
416 bb51a5b4 2020-01-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
417 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
421 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/alpha" > $testroot/stdout.expected
422 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/beta" >> $testroot/stdout.expected
423 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
424 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/gamma/delta" >> $testroot/stdout.expected
425 bb51a5b4 2020-01-13 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
427 bb51a5b4 2020-01-13 stsp got checkout -E $testroot/repo $testroot/wt > $testroot/stdout
429 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
430 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
434 bb51a5b4 2020-01-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
436 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
437 bb51a5b4 2020-01-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
438 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
442 bb51a5b4 2020-01-13 stsp echo "alpha" > $testroot/content.expected
443 bb51a5b4 2020-01-13 stsp echo "beta" >> $testroot/content.expected
444 bb51a5b4 2020-01-13 stsp echo "zeta" >> $testroot/content.expected
445 bb51a5b4 2020-01-13 stsp echo "delta" >> $testroot/content.expected
446 bb51a5b4 2020-01-13 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
447 bb51a5b4 2020-01-13 stsp $testroot/wt/gamma/delta > $testroot/content
449 bb51a5b4 2020-01-13 stsp cmp -s $testroot/content.expected $testroot/content
451 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
452 bb51a5b4 2020-01-13 stsp diff -u $testroot/content.expected $testroot/content
453 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
457 bb51a5b4 2020-01-13 stsp echo "modified alpha" > $testroot/wt/alpha
459 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/alpha" > $testroot/stdout.expected
460 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/beta" >> $testroot/stdout.expected
461 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/epsilon/zeta" >> $testroot/stdout.expected
462 bb51a5b4 2020-01-13 stsp echo "E $testroot/wt/gamma/delta" >> $testroot/stdout.expected
463 bb51a5b4 2020-01-13 stsp echo "Now shut up and hack" >> $testroot/stdout.expected
465 bb51a5b4 2020-01-13 stsp got checkout -E $testroot/repo $testroot/wt > $testroot/stdout
467 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
468 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
472 bb51a5b4 2020-01-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
474 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
475 bb51a5b4 2020-01-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
476 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
480 bb51a5b4 2020-01-13 stsp echo "modified alpha" > $testroot/content.expected
481 bb51a5b4 2020-01-13 stsp echo "beta" >> $testroot/content.expected
482 bb51a5b4 2020-01-13 stsp echo "zeta" >> $testroot/content.expected
483 bb51a5b4 2020-01-13 stsp echo "delta" >> $testroot/content.expected
484 bb51a5b4 2020-01-13 stsp cat $testroot/wt/alpha $testroot/wt/beta $testroot/wt/epsilon/zeta \
485 bb51a5b4 2020-01-13 stsp $testroot/wt/gamma/delta > $testroot/content
487 bb51a5b4 2020-01-13 stsp cmp -s $testroot/content.expected $testroot/content
489 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
490 bb51a5b4 2020-01-13 stsp diff -u $testroot/content.expected $testroot/content
491 bb51a5b4 2020-01-13 stsp test_done "$testroot" "$ret"
495 bb51a5b4 2020-01-13 stsp echo 'M alpha' > $testroot/stdout.expected
496 bb51a5b4 2020-01-13 stsp (cd $testroot/wt && got status > $testroot/stdout)
498 8ba819a3 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
500 8ba819a3 2020-07-23 stsp if [ "$ret" != "0" ]; then
501 8ba819a3 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
503 8ba819a3 2020-07-23 stsp test_done "$testroot" "$ret"
506 8ba819a3 2020-07-23 stsp function test_checkout_symlink {
507 8ba819a3 2020-07-23 stsp local testroot=`test_init checkout_symlink`
509 8ba819a3 2020-07-23 stsp (cd $testroot/repo && ln -s alpha alpha.link)
510 8ba819a3 2020-07-23 stsp (cd $testroot/repo && ln -s epsilon epsilon.link)
511 8ba819a3 2020-07-23 stsp (cd $testroot/repo && ln -s /etc/passwd passwd.link)
512 0ab20ee9 2020-07-23 stsp (cd $testroot/repo && ln -s ../beta epsilon/beta.link)
513 0ab20ee9 2020-07-23 stsp (cd $testroot/repo && ln -s nonexistent nonexistent.link)
514 906c123b 2020-07-23 stsp (cd $testroot/repo && ln -s .got/foo dotgotfoo.link)
515 8ba819a3 2020-07-23 stsp (cd $testroot/repo && git add .)
516 0ab20ee9 2020-07-23 stsp git_commit $testroot/repo -m "add symlinks"
518 8ba819a3 2020-07-23 stsp got checkout $testroot/repo $testroot/wt > /dev/null
520 8ba819a3 2020-07-23 stsp if [ "$ret" != "0" ]; then
521 8ba819a3 2020-07-23 stsp test_done "$testroot" "$ret"
525 8ba819a3 2020-07-23 stsp if ! [ -h $testroot/wt/alpha.link ]; then
526 8ba819a3 2020-07-23 stsp echo "alpha.link is not a symlink"
527 8ba819a3 2020-07-23 stsp test_done "$testroot" "1"
531 8ba819a3 2020-07-23 stsp readlink $testroot/wt/alpha.link > $testroot/stdout
532 8ba819a3 2020-07-23 stsp echo "alpha" > $testroot/stdout.expected
533 8ba819a3 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
535 8ba819a3 2020-07-23 stsp if [ "$ret" != "0" ]; then
536 8ba819a3 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
537 8ba819a3 2020-07-23 stsp test_done "$testroot" "$ret"
541 8ba819a3 2020-07-23 stsp if ! [ -h $testroot/wt/epsilon.link ]; then
542 8ba819a3 2020-07-23 stsp echo "epsilon.link is not a symlink"
543 8ba819a3 2020-07-23 stsp test_done "$testroot" "1"
547 8ba819a3 2020-07-23 stsp readlink $testroot/wt/epsilon.link > $testroot/stdout
548 8ba819a3 2020-07-23 stsp echo "epsilon" > $testroot/stdout.expected
549 bb51a5b4 2020-01-13 stsp cmp -s $testroot/stdout.expected $testroot/stdout
551 bb51a5b4 2020-01-13 stsp if [ "$ret" != "0" ]; then
552 bb51a5b4 2020-01-13 stsp diff -u $testroot/stdout.expected $testroot/stdout
553 8ba819a3 2020-07-23 stsp test_done "$testroot" "$ret"
557 8ba819a3 2020-07-23 stsp if [ -h $testroot/wt/passwd.link ]; then
558 8ba819a3 2020-07-23 stsp echo -n "passwd.link symlink points outside of work tree: " >&2
559 8ba819a3 2020-07-23 stsp readlink $testroot/wt/passwd.link >&2
560 8ba819a3 2020-07-23 stsp test_done "$testroot" "1"
564 8ba819a3 2020-07-23 stsp echo -n "/etc/passwd" > $testroot/content.expected
565 8ba819a3 2020-07-23 stsp cp $testroot/wt/passwd.link $testroot/content
567 8ba819a3 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
569 8ba819a3 2020-07-23 stsp if [ "$ret" != "0" ]; then
570 8ba819a3 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
571 0ab20ee9 2020-07-23 stsp test_done "$testroot" "$ret"
575 0ab20ee9 2020-07-23 stsp readlink $testroot/wt/epsilon/beta.link > $testroot/stdout
576 0ab20ee9 2020-07-23 stsp echo "../beta" > $testroot/stdout.expected
577 0ab20ee9 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
579 0ab20ee9 2020-07-23 stsp if [ "$ret" != "0" ]; then
580 0ab20ee9 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
581 0ab20ee9 2020-07-23 stsp test_done "$testroot" "$ret"
585 0ab20ee9 2020-07-23 stsp readlink $testroot/wt/nonexistent.link > $testroot/stdout
586 0ab20ee9 2020-07-23 stsp echo "nonexistent" > $testroot/stdout.expected
587 0ab20ee9 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
589 0ab20ee9 2020-07-23 stsp if [ "$ret" != "0" ]; then
590 0ab20ee9 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
591 906c123b 2020-07-23 stsp test_done "$testroot" "$ret"
594 906c123b 2020-07-23 stsp if [ -h $testroot/wt/dotgotfoo.link ]; then
595 906c123b 2020-07-23 stsp echo -n "dotgotfoo.link symlink points into .got dir: " >&2
596 906c123b 2020-07-23 stsp readlink $testroot/wt/dotgotfoo.link >&2
597 906c123b 2020-07-23 stsp test_done "$testroot" "1"
601 906c123b 2020-07-23 stsp echo -n ".got/foo" > $testroot/content.expected
602 906c123b 2020-07-23 stsp cp $testroot/wt/dotgotfoo.link $testroot/content
604 906c123b 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
606 906c123b 2020-07-23 stsp if [ "$ret" != "0" ]; then
607 906c123b 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
609 0ab20ee9 2020-07-23 stsp test_done "$testroot" "$ret"
612 7d61d891 2020-07-23 stsp function test_checkout_symlink_relative_wtpath {
613 7d61d891 2020-07-23 stsp local testroot=`test_init checkout_symlink_with_wtpath`
615 7d61d891 2020-07-23 stsp (cd $testroot/repo && ln -s alpha alpha.link)
616 7d61d891 2020-07-23 stsp (cd $testroot/repo && ln -s epsilon epsilon.link)
617 7d61d891 2020-07-23 stsp (cd $testroot/repo && ln -s /etc/passwd passwd.link)
618 7d61d891 2020-07-23 stsp (cd $testroot/repo && ln -s ../beta epsilon/beta.link)
619 7d61d891 2020-07-23 stsp (cd $testroot/repo && ln -s nonexistent nonexistent.link)
620 7d61d891 2020-07-23 stsp (cd $testroot/repo && ln -s .got/foo dotgotfoo.link)
621 7d61d891 2020-07-23 stsp (cd $testroot/repo && git add .)
622 7d61d891 2020-07-23 stsp git_commit $testroot/repo -m "add symlinks"
624 7d61d891 2020-07-23 stsp (cd $testroot && got checkout $testroot/repo wt > /dev/null)
626 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
627 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
631 7d61d891 2020-07-23 stsp if ! [ -h $testroot/wt/alpha.link ]; then
632 7d61d891 2020-07-23 stsp echo "alpha.link is not a symlink"
633 7d61d891 2020-07-23 stsp test_done "$testroot" "1"
637 7d61d891 2020-07-23 stsp readlink $testroot/wt/alpha.link > $testroot/stdout
638 7d61d891 2020-07-23 stsp echo "alpha" > $testroot/stdout.expected
639 7d61d891 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
641 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
642 7d61d891 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
643 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
647 7d61d891 2020-07-23 stsp if ! [ -h $testroot/wt/epsilon.link ]; then
648 7d61d891 2020-07-23 stsp echo "epsilon.link is not a symlink"
649 7d61d891 2020-07-23 stsp test_done "$testroot" "1"
653 7d61d891 2020-07-23 stsp readlink $testroot/wt/epsilon.link > $testroot/stdout
654 7d61d891 2020-07-23 stsp echo "epsilon" > $testroot/stdout.expected
655 7d61d891 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
657 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
658 7d61d891 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
659 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
663 7d61d891 2020-07-23 stsp if [ -h $testroot/wt/passwd.link ]; then
664 7d61d891 2020-07-23 stsp echo -n "passwd.link symlink points outside of work tree: " >&2
665 7d61d891 2020-07-23 stsp readlink $testroot/wt/passwd.link >&2
666 7d61d891 2020-07-23 stsp test_done "$testroot" "1"
670 7d61d891 2020-07-23 stsp echo -n "/etc/passwd" > $testroot/content.expected
671 7d61d891 2020-07-23 stsp cp $testroot/wt/passwd.link $testroot/content
673 7d61d891 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
675 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
676 7d61d891 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
677 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
681 7d61d891 2020-07-23 stsp readlink $testroot/wt/epsilon/beta.link > $testroot/stdout
682 7d61d891 2020-07-23 stsp echo "../beta" > $testroot/stdout.expected
683 7d61d891 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
685 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
686 7d61d891 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
687 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
691 7d61d891 2020-07-23 stsp readlink $testroot/wt/nonexistent.link > $testroot/stdout
692 7d61d891 2020-07-23 stsp echo "nonexistent" > $testroot/stdout.expected
693 7d61d891 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
695 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
696 7d61d891 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
697 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
700 7d61d891 2020-07-23 stsp if [ -h $testroot/wt/dotgotfoo.link ]; then
701 7d61d891 2020-07-23 stsp echo -n "dotgotfoo.link symlink points into .got dir: " >&2
702 7d61d891 2020-07-23 stsp readlink $testroot/wt/dotgotfoo.link >&2
703 7d61d891 2020-07-23 stsp test_done "$testroot" "1"
707 7d61d891 2020-07-23 stsp echo -n ".got/foo" > $testroot/content.expected
708 7d61d891 2020-07-23 stsp cp $testroot/wt/dotgotfoo.link $testroot/content
710 7d61d891 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
712 7d61d891 2020-07-23 stsp if [ "$ret" != "0" ]; then
713 7d61d891 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
715 7d61d891 2020-07-23 stsp test_done "$testroot" "$ret"
718 0e673013 2019-01-02 stsp run_test test_checkout_basic
719 80c1b583 2019-08-07 stsp run_test test_checkout_dir_exists
720 80c1b583 2019-08-07 stsp run_test test_checkout_dir_not_empty
721 68ed9ba5 2019-02-10 stsp run_test test_checkout_sets_xbit
722 45d344f6 2019-05-14 stsp run_test test_checkout_commit_from_wrong_branch
723 303e2782 2019-08-09 stsp run_test test_checkout_tag
724 63c5ca5d 2019-08-24 stsp run_test test_checkout_ignores_submodules
725 7f47418f 2019-12-20 stsp run_test test_checkout_read_only
726 bb51a5b4 2020-01-13 stsp run_test test_checkout_into_nonempty_dir
727 8ba819a3 2020-07-23 stsp run_test test_checkout_symlink
728 7d61d891 2020-07-23 stsp run_test test_checkout_symlink_relative_wtpath