3 069bbb86 2022-03-07 thomas # Copyright (c) 2022 Omar Polo <op@openbsd.org>
5 069bbb86 2022-03-07 thomas # Permission to use, copy, modify, and distribute this software for any
6 069bbb86 2022-03-07 thomas # purpose with or without fee is hereby granted, provided that the above
7 069bbb86 2022-03-07 thomas # copyright notice and this permission notice appear in all copies.
9 069bbb86 2022-03-07 thomas # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 069bbb86 2022-03-07 thomas # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 069bbb86 2022-03-07 thomas # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 069bbb86 2022-03-07 thomas # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 069bbb86 2022-03-07 thomas # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 069bbb86 2022-03-07 thomas # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 069bbb86 2022-03-07 thomas # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 069bbb86 2022-03-07 thomas . ./common.sh
19 3b6e8f19 2022-08-06 thomas test_patch_basic() {
20 3b6e8f19 2022-08-06 thomas local testroot=`test_init patch_basic`
22 069bbb86 2022-03-07 thomas got checkout $testroot/repo $testroot/wt > /dev/null
24 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
25 069bbb86 2022-03-07 thomas test_done $testroot $ret
29 3b6e8f19 2022-08-06 thomas jot 100 > $testroot/wt/numbers
30 3b6e8f19 2022-08-06 thomas (cd $testroot/wt && got add numbers && got commit -m +numbers) \
31 3b6e8f19 2022-08-06 thomas >/dev/null
33 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
34 3b6e8f19 2022-08-06 thomas test_done "$testroot" $ret
38 069bbb86 2022-03-07 thomas cat <<EOF > $testroot/wt/patch
41 069bbb86 2022-03-07 thomas @@ -1 +1 @@
43 069bbb86 2022-03-07 thomas +alpha is my favourite character
45 3b6e8f19 2022-08-06 thomas +++ /dev/null
46 3b6e8f19 2022-08-06 thomas @@ -1 +0,0 @@
48 3b6e8f19 2022-08-06 thomas --- gamma/delta
49 3b6e8f19 2022-08-06 thomas +++ gamma/delta
50 069bbb86 2022-03-07 thomas @@ -1 +1,2 @@
53 3b6e8f19 2022-08-06 thomas --- /dev/null
55 3b6e8f19 2022-08-06 thomas @@ -0,0 +5,5 @@
61 069bbb86 2022-03-07 thomas --- numbers
62 069bbb86 2022-03-07 thomas +++ numbers
63 069bbb86 2022-03-07 thomas @@ -3,7 +3,7 @@
72 069bbb86 2022-03-07 thomas @@ -57,7 +57,7 @@
81 069bbb86 2022-03-07 thomas @@ -98,3 +98,6 @@
90 ce3641f6 2022-10-16 thomas (cd $testroot/wt && got patch < patch) > $testroot/stdout
91 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
92 3b6e8f19 2022-08-06 thomas test_done "$testroot" $ret
96 3b6e8f19 2022-08-06 thomas echo 'M alpha' > $testroot/stdout.expected
97 3b6e8f19 2022-08-06 thomas echo 'D beta' >> $testroot/stdout.expected
98 3b6e8f19 2022-08-06 thomas echo 'M gamma/delta' >> $testroot/stdout.expected
99 3b6e8f19 2022-08-06 thomas echo 'A eta' >> $testroot/stdout.expected
100 3b6e8f19 2022-08-06 thomas echo 'M numbers' >> $testroot/stdout.expected
102 069bbb86 2022-03-07 thomas cmp -s $testroot/stdout.expected $testroot/stdout
104 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
105 069bbb86 2022-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
106 069bbb86 2022-03-07 thomas test_done $testroot $ret
110 3b6e8f19 2022-08-06 thomas echo 'alpha is my favourite character' > $testroot/wt/alpha.expected
111 3b6e8f19 2022-08-06 thomas cmp -s $testroot/wt/alpha.expected $testroot/wt/alpha
113 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
114 3b6e8f19 2022-08-06 thomas diff -u $testroot/wt/alpha.expected $testroot/wt/alpha
115 3b6e8f19 2022-08-06 thomas test_done "$testroot" $ret
119 3b6e8f19 2022-08-06 thomas if [ -f "$testroot/wt/beta" ]; then
120 3b6e8f19 2022-08-06 thomas echo "beta was not deleted!" >&2
121 3b6e8f19 2022-08-06 thomas test_done "$testroot" 1
125 3b6e8f19 2022-08-06 thomas echo 'this is:' > $testroot/wt/gamma/delta.expected
126 3b6e8f19 2022-08-06 thomas echo 'delta' >> $testroot/wt/gamma/delta.expected
127 3b6e8f19 2022-08-06 thomas cmp -s $testroot/wt/gamma/delta.expected $testroot/wt/gamma/delta
129 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
130 3b6e8f19 2022-08-06 thomas diff -u $testroot/wt/gamma/delta.expected $testroot/wt/gamma/delta
131 3b6e8f19 2022-08-06 thomas test_done "$testroot" $ret
135 3b6e8f19 2022-08-06 thomas jot 5 > $testroot/wt/eta.expected
136 3b6e8f19 2022-08-06 thomas cmp -s $testroot/wt/eta.expected $testroot/wt/eta
138 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
139 3b6e8f19 2022-08-06 thomas diff -u $testroot/wt/eta.expected $testroot/wt/eta
140 3b6e8f19 2022-08-06 thomas test_done "$testroot" $ret
144 3b6e8f19 2022-08-06 thomas jot 103 | sed -e 's/^6$/six/' -e 's/60/sixty/' \
145 3b6e8f19 2022-08-06 thomas > $testroot/wt/numbers.expected
146 3b6e8f19 2022-08-06 thomas cmp -s $testroot/wt/numbers.expected $testroot/wt/numbers
148 3b6e8f19 2022-08-06 thomas if [ $ret -ne 0 ]; then
149 3b6e8f19 2022-08-06 thomas diff -u $testroot/wt/numbers.expected $testroot/wt/numbers
151 3b6e8f19 2022-08-06 thomas test_done $testroot $ret
154 069bbb86 2022-03-07 thomas test_patch_dont_apply() {
155 069bbb86 2022-03-07 thomas local testroot=`test_init patch_dont_apply`
157 069bbb86 2022-03-07 thomas got checkout $testroot/repo $testroot/wt > /dev/null
159 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
160 069bbb86 2022-03-07 thomas test_done $testroot $ret
164 7dd42450 2022-03-13 thomas jot 100 > $testroot/wt/numbers
165 7dd42450 2022-03-13 thomas (cd $testroot/wt && got add numbers && got commit -m 'add numbers') \
166 7dd42450 2022-03-13 thomas >/dev/null
168 7dd42450 2022-03-13 thomas if [ $ret -ne 0 ]; then
169 7dd42450 2022-03-13 thomas test_done $testroot $ret
173 7dd42450 2022-03-13 thomas cat <<EOF > $testroot/wt/patch
174 49114f01 2022-03-22 thomas --- alpha
175 49114f01 2022-03-22 thomas +++ alpha
176 49114f01 2022-03-22 thomas @@ -1 +1,2 @@
177 49114f01 2022-03-22 thomas +hatsuseno
178 49114f01 2022-03-22 thomas alpha something
179 7dd42450 2022-03-13 thomas --- numbers
180 7dd42450 2022-03-13 thomas +++ /dev/null
181 7dd42450 2022-03-13 thomas @@ -1,9 +0,0 @@
193 49114f01 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout 2> /dev/null
195 7dd42450 2022-03-13 thomas if [ $ret -eq 0 ]; then # should fail
196 7dd42450 2022-03-13 thomas test_done $testroot 1
200 49114f01 2022-03-22 thomas cat <<EOF > $testroot/stdout.expected
202 49114f01 2022-03-22 thomas @@ -1,1 +1,2 @@ hunk failed to apply
203 49114f01 2022-03-22 thomas # numbers
204 49114f01 2022-03-22 thomas @@ -1,9 +0,0 @@ hunk failed to apply
205 1faec3fb 2023-05-14 thomas Files where patch failed to apply: 2
208 49114f01 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
210 7dd42450 2022-03-13 thomas if [ $ret -ne 0 ]; then
211 49114f01 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
213 069bbb86 2022-03-07 thomas test_done $testroot $ret
216 069bbb86 2022-03-07 thomas test_patch_malformed() {
217 069bbb86 2022-03-07 thomas local testroot=`test_init patch_malformed`
219 069bbb86 2022-03-07 thomas got checkout $testroot/repo $testroot/wt > /dev/null
221 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
222 069bbb86 2022-03-07 thomas test_done $testroot $ret
226 069bbb86 2022-03-07 thomas # missing "@@"
227 069bbb86 2022-03-07 thomas cat <<EOF > $testroot/wt/patch
228 069bbb86 2022-03-07 thomas --- alpha
229 069bbb86 2022-03-07 thomas +++ alpha
230 069bbb86 2022-03-07 thomas @@ -1 +1,2
231 069bbb86 2022-03-07 thomas +hatsuseno
235 069bbb86 2022-03-07 thomas echo -n > $testroot/stdout.expected
236 069bbb86 2022-03-07 thomas echo "got: malformed patch" > $testroot/stderr.expected
238 069bbb86 2022-03-07 thomas (cd $testroot/wt && got patch patch) \
239 069bbb86 2022-03-07 thomas > $testroot/stdout \
240 069bbb86 2022-03-07 thomas 2> $testroot/stderr
242 10cdd9aa 2022-03-08 thomas if [ $ret -eq 0 ]; then
243 069bbb86 2022-03-07 thomas echo "got managed to apply an invalid patch"
244 069bbb86 2022-03-07 thomas test_done $testroot 1
248 069bbb86 2022-03-07 thomas cmp -s $testroot/stdout.expected $testroot/stdout
250 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
251 069bbb86 2022-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
252 069bbb86 2022-03-07 thomas test_done $testroot $ret
256 069bbb86 2022-03-07 thomas cmp -s $testroot/stderr.expected $testroot/stderr
258 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
259 069bbb86 2022-03-07 thomas diff -u $testroot/stderr.expected $testroot/stderr
260 069bbb86 2022-03-07 thomas test_done $testroot $ret
264 069bbb86 2022-03-07 thomas # wrong first character
265 069bbb86 2022-03-07 thomas cat <<EOF > $testroot/wt/patch
266 069bbb86 2022-03-07 thomas --- alpha
267 069bbb86 2022-03-07 thomas +++ alpha
268 069bbb86 2022-03-07 thomas @@ -1 +1,2 @@
269 069bbb86 2022-03-07 thomas +hatsuseno
273 88c260f4 2022-05-14 thomas (cd $testroot/wt && got patch patch) \
274 88c260f4 2022-05-14 thomas > $testroot/stdout \
275 88c260f4 2022-05-14 thomas 2> $testroot/stderr
277 88c260f4 2022-05-14 thomas if [ $ret -eq 0 ]; then
278 88c260f4 2022-05-14 thomas echo "got managed to apply an invalid patch"
279 88c260f4 2022-05-14 thomas test_done $testroot 1
283 88c260f4 2022-05-14 thomas cmp -s $testroot/stdout.expected $testroot/stdout
285 88c260f4 2022-05-14 thomas if [ $ret -ne 0 ]; then
286 88c260f4 2022-05-14 thomas diff -u $testroot/stdout.expected $testroot/stdout
287 88c260f4 2022-05-14 thomas test_done $testroot $ret
291 88c260f4 2022-05-14 thomas cmp -s $testroot/stderr.expected $testroot/stderr
293 88c260f4 2022-05-14 thomas if [ $ret -ne 0 ]; then
294 88c260f4 2022-05-14 thomas diff -u $testroot/stderr.expected $testroot/stderr
295 88c260f4 2022-05-14 thomas test_done $testroot $ret
299 88c260f4 2022-05-14 thomas # empty hunk
300 88c260f4 2022-05-14 thomas cat <<EOF > $testroot/wt/patch
301 88c260f4 2022-05-14 thomas diff --git a/alpha b/iota
302 88c260f4 2022-05-14 thomas --- a/alpha
303 88c260f4 2022-05-14 thomas +++ b/iota
304 88c260f4 2022-05-14 thomas @@ -0,0 +0,0 @@
307 069bbb86 2022-03-07 thomas (cd $testroot/wt && got patch patch) \
308 069bbb86 2022-03-07 thomas > $testroot/stdout \
309 069bbb86 2022-03-07 thomas 2> $testroot/stderr
311 10cdd9aa 2022-03-08 thomas if [ $ret -eq 0 ]; then
312 069bbb86 2022-03-07 thomas echo "got managed to apply an invalid patch"
313 069bbb86 2022-03-07 thomas test_done $testroot 1
317 069bbb86 2022-03-07 thomas cmp -s $testroot/stdout.expected $testroot/stdout
319 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
320 069bbb86 2022-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
321 069bbb86 2022-03-07 thomas test_done $testroot $ret
325 069bbb86 2022-03-07 thomas cmp -s $testroot/stderr.expected $testroot/stderr
327 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
328 069bbb86 2022-03-07 thomas diff -u $testroot/stderr.expected $testroot/stderr
329 069bbb86 2022-03-07 thomas test_done $testroot $ret
333 069bbb86 2022-03-07 thomas test_done $testroot $ret
336 069bbb86 2022-03-07 thomas test_patch_no_patch() {
337 069bbb86 2022-03-07 thomas local testroot=`test_init patch_no_patch`
339 069bbb86 2022-03-07 thomas got checkout $testroot/repo $testroot/wt > /dev/null
341 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
342 069bbb86 2022-03-07 thomas test_done $testroot $ret
346 069bbb86 2022-03-07 thomas cat <<EOF > $testroot/wt/patch
347 069bbb86 2022-03-07 thomas hello world!
350 069bbb86 2022-03-07 thomas some other nonsense
353 069bbb86 2022-03-07 thomas there's no patch in here!
356 069bbb86 2022-03-07 thomas echo -n > $testroot/stdout.expected
357 069bbb86 2022-03-07 thomas echo "got: no patch found" > $testroot/stderr.expected
359 069bbb86 2022-03-07 thomas (cd $testroot/wt && got patch patch) \
360 069bbb86 2022-03-07 thomas > $testroot/stdout \
361 069bbb86 2022-03-07 thomas 2> $testroot/stderr
363 10cdd9aa 2022-03-08 thomas if [ $ret -eq 0 ]; then # should fail
364 069bbb86 2022-03-07 thomas test_done $testroot 1
368 069bbb86 2022-03-07 thomas cmp -s $testroot/stdout.expected $testroot/stdout
370 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
371 069bbb86 2022-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
372 069bbb86 2022-03-07 thomas test_done $testroot $ret
376 069bbb86 2022-03-07 thomas cmp -s $testroot/stderr.expected $testroot/stderr
378 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
379 069bbb86 2022-03-07 thomas diff -u $testroot/stderr.expected $testroot/stderr
380 069bbb86 2022-03-07 thomas test_done $testroot $ret
384 069bbb86 2022-03-07 thomas test_done $testroot $ret
387 069bbb86 2022-03-07 thomas test_patch_equals_for_context() {
388 9a49df74 2022-04-23 thomas local testroot=`test_init patch_equals_for_context`
390 069bbb86 2022-03-07 thomas got checkout $testroot/repo $testroot/wt > /dev/null
392 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
393 069bbb86 2022-03-07 thomas test_done $testroot $ret
397 069bbb86 2022-03-07 thomas cat <<EOF > $testroot/wt/patch
398 069bbb86 2022-03-07 thomas --- alpha
399 069bbb86 2022-03-07 thomas +++ alpha
400 069bbb86 2022-03-07 thomas @@ -1 +1,2 @@
401 069bbb86 2022-03-07 thomas +hatsuseno
405 069bbb86 2022-03-07 thomas echo "M alpha" > $testroot/stdout.expected
407 069bbb86 2022-03-07 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
409 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
410 069bbb86 2022-03-07 thomas test_done $testroot $ret
414 069bbb86 2022-03-07 thomas cmp -s $testroot/stdout.expected $testroot/stdout
416 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
417 069bbb86 2022-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
418 069bbb86 2022-03-07 thomas test_done $testroot $ret
422 069bbb86 2022-03-07 thomas echo hatsuseno > $testroot/wt/alpha.expected
423 069bbb86 2022-03-07 thomas echo alpha >> $testroot/wt/alpha.expected
424 069bbb86 2022-03-07 thomas cmp -s $testroot/wt/alpha.expected $testroot/wt/alpha
426 10cdd9aa 2022-03-08 thomas if [ $ret -ne 0 ]; then
427 069bbb86 2022-03-07 thomas diff -u $testroot/wt/alpha.expected $testroot/wt/alpha
429 069bbb86 2022-03-07 thomas test_done $testroot $ret
432 bb2ad8ff 2022-03-13 thomas test_patch_rename() {
433 bb2ad8ff 2022-03-13 thomas local testroot=`test_init patch_rename`
435 bb2ad8ff 2022-03-13 thomas got checkout $testroot/repo $testroot/wt > /dev/null
437 bb2ad8ff 2022-03-13 thomas if [ $ret -ne 0 ]; then
438 bb2ad8ff 2022-03-13 thomas test_done $testroot $ret
442 bb2ad8ff 2022-03-13 thomas cat <<EOF > $testroot/wt/patch
443 8afe1f71 2022-05-12 thomas diff --git a/beta b/iota
444 8afe1f71 2022-05-12 thomas similarity index 100%
445 8afe1f71 2022-05-12 thomas rename from beta
446 8afe1f71 2022-05-12 thomas rename to iota
447 be53ddb1 2022-03-22 thomas diff --git a/alpha b/eta
448 be53ddb1 2022-03-22 thomas --- a/alpha
449 be53ddb1 2022-03-22 thomas +++ b/eta
450 8afe1f71 2022-05-12 thomas @@ -1 +1 @@
455 8afe1f71 2022-05-12 thomas echo 'D beta' > $testroot/stdout.expected
456 8afe1f71 2022-05-12 thomas echo 'A iota' >> $testroot/stdout.expected
457 8afe1f71 2022-05-12 thomas echo 'D alpha' >> $testroot/stdout.expected
458 8afe1f71 2022-05-12 thomas echo 'A eta' >> $testroot/stdout.expected
460 bb2ad8ff 2022-03-13 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
462 bb2ad8ff 2022-03-13 thomas if [ $ret -ne 0 ]; then
463 bb2ad8ff 2022-03-13 thomas test_done $testroot $ret
467 bb2ad8ff 2022-03-13 thomas cmp -s $testroot/stdout.expected $testroot/stdout
469 bb2ad8ff 2022-03-13 thomas if [ $ret -ne 0 ]; then
470 bb2ad8ff 2022-03-13 thomas diff -u $testroot/stdout.expected $testroot/stdout
471 bb2ad8ff 2022-03-13 thomas test_done $testroot $ret
475 8afe1f71 2022-05-12 thomas if [ -f $testroot/wt/alpha -o -f $testroot/wt/beta ]; then
476 8afe1f71 2022-05-12 thomas echo "alpha or beta were not removed" >&2
477 bb2ad8ff 2022-03-13 thomas test_done $testroot 1
480 8afe1f71 2022-05-12 thomas if [ ! -f $testroot/wt/iota -o ! -f $testroot/wt/eta ]; then
481 8afe1f71 2022-05-12 thomas echo "iota or eta were not created" >&2
482 bb2ad8ff 2022-03-13 thomas test_done $testroot 1
486 8afe1f71 2022-05-12 thomas echo beta > $testroot/wt/iota.expected
487 8afe1f71 2022-05-12 thomas cmp -s $testroot/wt/iota.expected $testroot/wt/iota
489 bb2ad8ff 2022-03-13 thomas if [ $ret -ne 0 ]; then
490 8afe1f71 2022-05-12 thomas diff -u $testroot/wt/iota.expected $testroot/wt/iota
491 bb2ad8ff 2022-03-13 thomas test_done $testroot $ret
495 8afe1f71 2022-05-12 thomas echo eta > $testroot/wt/eta.expected
496 8afe1f71 2022-05-12 thomas cmp -s $testroot/wt/eta.expected $testroot/wt/eta
498 bb2ad8ff 2022-03-13 thomas if [ $ret -ne 0 ]; then
499 8afe1f71 2022-05-12 thomas diff -u $testroot/wt/eta.expected $testroot/wt/eta
500 bb2ad8ff 2022-03-13 thomas test_done $testroot $ret
504 bb2ad8ff 2022-03-13 thomas test_done $testroot $ret
507 10e55613 2022-03-22 thomas test_patch_illegal_status() {
508 10e55613 2022-03-22 thomas local testroot=`test_init patch_illegal_status`
510 10e55613 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
512 10e55613 2022-03-22 thomas if [ $ret -ne 0 ]; then
513 10e55613 2022-03-22 thomas test_done $testroot $ret
517 49114f01 2022-03-22 thomas # try to patch an obstructed file, add a versioned one, edit a
518 49114f01 2022-03-22 thomas # non existent file and an unversioned one, and remove a
519 49114f01 2022-03-22 thomas # non existent file.
520 10e55613 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
521 49114f01 2022-03-22 thomas --- alpha
522 49114f01 2022-03-22 thomas +++ alpha
523 49114f01 2022-03-22 thomas @@ -1 +1,2 @@
525 49114f01 2022-03-22 thomas +was edited
526 49114f01 2022-03-22 thomas --- /dev/null
528 49114f01 2022-03-22 thomas @@ -0,0 +1 @@
532 10e55613 2022-03-22 thomas @@ -1 +1 @@
535 49114f01 2022-03-22 thomas --- kappa
536 49114f01 2022-03-22 thomas +++ kappa
537 49114f01 2022-03-22 thomas @@ -1 +1 @@
540 49114f01 2022-03-22 thomas --- lambda
541 49114f01 2022-03-22 thomas +++ /dev/null
542 49114f01 2022-03-22 thomas @@ -1 +0,0 @@
546 49114f01 2022-03-22 thomas echo kappa > $testroot/wt/kappa
547 10e55613 2022-03-22 thomas rm $testroot/wt/alpha
548 10e55613 2022-03-22 thomas mkdir $testroot/wt/alpha
550 49114f01 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout \
551 10e55613 2022-03-22 thomas 2> $testroot/stderr
553 10e55613 2022-03-22 thomas if [ $ret -eq 0 ]; then
554 10e55613 2022-03-22 thomas echo "edited a missing file" >&2
555 4e2bdb0d 2022-06-13 thomas test_done $testroot 1
559 49114f01 2022-03-22 thomas cat <<EOF > $testroot/stdout.expected
565 1faec3fb 2023-05-14 thomas Files where patch failed to apply: 5
568 49114f01 2022-03-22 thomas cat <<EOF > $testroot/stderr.expected
569 49114f01 2022-03-22 thomas got: alpha: file has unexpected status
570 49114f01 2022-03-22 thomas got: beta: file has unexpected status
571 49114f01 2022-03-22 thomas got: iota: No such file or directory
572 49114f01 2022-03-22 thomas got: kappa: file has unexpected status
573 49114f01 2022-03-22 thomas got: lambda: No such file or directory
574 49114f01 2022-03-22 thomas got: patch failed to apply
577 49114f01 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
579 49114f01 2022-03-22 thomas if [ $ret -ne 0 ]; then
580 49114f01 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
581 10e55613 2022-03-22 thomas test_done $testroot $ret
585 10e55613 2022-03-22 thomas cmp -s $testroot/stderr.expected $testroot/stderr
587 49114f01 2022-03-22 thomas if [ $ret -ne 0 ]; then
588 10e55613 2022-03-22 thomas diff -u $testroot/stderr.expected $testroot/stderr
589 814624e7 2022-03-22 thomas test_done $testroot $ret
593 814624e7 2022-03-22 thomas (cd $testroot/wt && got status) > $testroot/stdout
594 814624e7 2022-03-22 thomas cat <<EOF > $testroot/stdout.expected
600 814624e7 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
602 814624e7 2022-03-22 thomas if [ $ret -ne 0 ]; then
603 814624e7 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
605 eaf99875 2022-03-22 thomas test_done $testroot $ret
608 eaf99875 2022-03-22 thomas test_patch_nop() {
609 eaf99875 2022-03-22 thomas local testroot=`test_init patch_nop`
611 eaf99875 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
613 eaf99875 2022-03-22 thomas if [ $ret -ne 0 ]; then
614 eaf99875 2022-03-22 thomas test_done $testroot $ret
618 eaf99875 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
619 eaf99875 2022-03-22 thomas --- alpha
620 eaf99875 2022-03-22 thomas +++ alpha
621 eaf99875 2022-03-22 thomas @@ -1 +1 @@
623 eaf99875 2022-03-22 thomas +cafe alpha
625 eaf99875 2022-03-22 thomas +++ /dev/null
626 eaf99875 2022-03-22 thomas @@ -1 +0,0 @@
628 be53ddb1 2022-03-22 thomas diff --git a/gamma/delta b/gamma/delta.new
629 eaf99875 2022-03-22 thomas --- gamma/delta
630 eaf99875 2022-03-22 thomas +++ gamma/delta.new
631 eaf99875 2022-03-22 thomas @@ -1 +1 @@
633 eaf99875 2022-03-22 thomas +delta updated and renamed!
636 eaf99875 2022-03-22 thomas (cd $testroot/wt && got patch -n patch)
638 eaf99875 2022-03-22 thomas if [ $ret -ne 0 ]; then
639 eaf99875 2022-03-22 thomas test_done $testroot $ret
643 eaf99875 2022-03-22 thomas # remove the patch to avoid the ? entry
644 eaf99875 2022-03-22 thomas rm $testroot/wt/patch
646 eaf99875 2022-03-22 thomas (cd $testroot/wt && got status) > $testroot/stdout
648 eaf99875 2022-03-22 thomas if [ $ret -ne 0 ]; then
649 eaf99875 2022-03-22 thomas test_done $testroot $ret
653 eaf99875 2022-03-22 thomas echo -n > $testroot/stdout.expected
654 eaf99875 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
656 eaf99875 2022-03-22 thomas if [ $ret -ne 0 ]; then
657 eaf99875 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
659 10e55613 2022-03-22 thomas test_done $testroot $ret
662 da09d8ed 2022-03-22 thomas test_patch_preserve_perm() {
663 da09d8ed 2022-03-22 thomas local testroot=`test_init patch_preserve_perm`
665 da09d8ed 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
667 da09d8ed 2022-03-22 thomas if [ $ret -ne 0 ]; then
668 da09d8ed 2022-03-22 thomas test_done $testroot $ret
672 da09d8ed 2022-03-22 thomas chmod +x $testroot/wt/alpha
673 da09d8ed 2022-03-22 thomas (cd $testroot/wt && got commit -m 'alpha executable') > /dev/null
675 da09d8ed 2022-03-22 thomas if [ $ret -ne 0 ]; then
676 da09d8ed 2022-03-22 thomas test_done $testroot $ret
680 da09d8ed 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
681 da09d8ed 2022-03-22 thomas --- alpha
682 da09d8ed 2022-03-22 thomas +++ alpha
683 da09d8ed 2022-03-22 thomas @@ -1 +1,2 @@
685 da09d8ed 2022-03-22 thomas +was edited
688 da09d8ed 2022-03-22 thomas (cd $testroot/wt && got patch patch) > /dev/null
690 da09d8ed 2022-03-22 thomas if [ $ret -ne 0 ]; then
691 da09d8ed 2022-03-22 thomas test_done $testroot $ret
695 da09d8ed 2022-03-22 thomas if [ ! -x $testroot/wt/alpha ]; then
696 da09d8ed 2022-03-22 thomas echo "alpha is no more executable!" >&2
697 da09d8ed 2022-03-22 thomas test_done $testroot 1
700 e0c1f81c 2022-03-22 thomas test_done $testroot 0
703 e0c1f81c 2022-03-22 thomas test_patch_create_dirs() {
704 e0c1f81c 2022-03-22 thomas local testroot=`test_init patch_create_dirs`
706 e0c1f81c 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
708 e0c1f81c 2022-03-22 thomas if [ $ret -ne 0 ]; then
709 e0c1f81c 2022-03-22 thomas test_done $testroot $ret
713 e0c1f81c 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
714 e0c1f81c 2022-03-22 thomas --- /dev/null
715 e0c1f81c 2022-03-22 thomas +++ iota/kappa/lambda
716 e0c1f81c 2022-03-22 thomas @@ -0,0 +1 @@
720 e0c1f81c 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
722 e0c1f81c 2022-03-22 thomas if [ $ret -ne 0 ]; then
723 e0c1f81c 2022-03-22 thomas test_done $testroot $ret
727 e0c1f81c 2022-03-22 thomas echo 'A iota/kappa/lambda' >> $testroot/stdout.expected
728 e0c1f81c 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
730 e0c1f81c 2022-03-22 thomas if [ $ret -ne 0 ]; then
731 e0c1f81c 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
732 e0c1f81c 2022-03-22 thomas test_done $testroot $ret
736 e0c1f81c 2022-03-22 thomas if [ ! -f $testroot/wt/iota/kappa/lambda ]; then
737 e0c1f81c 2022-03-22 thomas echo "file not created!" >&2
738 e0c1f81c 2022-03-22 thomas test_done $testroot $ret
741 da09d8ed 2022-03-22 thomas test_done $testroot 0
744 49114f01 2022-03-22 thomas test_patch_with_offset() {
745 49114f01 2022-03-22 thomas local testroot=`test_init patch_with_offset`
747 49114f01 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
749 49114f01 2022-03-22 thomas if [ $ret -ne 0 ]; then
750 49114f01 2022-03-22 thomas test_done $testroot $ret
754 49114f01 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
755 49114f01 2022-03-22 thomas --- numbers
756 49114f01 2022-03-22 thomas +++ numbers
757 49114f01 2022-03-22 thomas @@ -47,7 +47,7 @@
762 49114f01 2022-03-22 thomas +midway tru it!
766 49114f01 2022-03-22 thomas @@ -87,7 +87,7 @@
771 49114f01 2022-03-22 thomas +almost there!
777 49114f01 2022-03-22 thomas jot 100 > $testroot/wt/numbers
778 7a9950a8 2022-11-18 thomas ed -s "$testroot/wt/numbers" <<EOF
780 49114f01 2022-03-22 thomas 50r !jot 20
785 49114f01 2022-03-22 thomas (cd $testroot/wt && got add numbers && got commit -m '+numbers') \
786 49114f01 2022-03-22 thomas > /dev/null
788 49114f01 2022-03-22 thomas if [ $ret -ne 0 ]; then
789 49114f01 2022-03-22 thomas test_done $testroot $ret
793 49114f01 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
795 49114f01 2022-03-22 thomas if [ $ret -ne 0 ]; then
796 49114f01 2022-03-22 thomas test_done $testroot/wt $ret
800 49114f01 2022-03-22 thomas cat <<EOF > $testroot/stdout.expected
801 49114f01 2022-03-22 thomas M numbers
802 49114f01 2022-03-22 thomas @@ -47,7 +47,7 @@ applied with offset -10
803 49114f01 2022-03-22 thomas @@ -87,7 +87,7 @@ applied with offset 10
806 be53ddb1 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
808 be53ddb1 2022-03-22 thomas if [ $ret -ne 0 ]; then
809 be53ddb1 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
811 be53ddb1 2022-03-22 thomas test_done $testroot $ret
814 be53ddb1 2022-03-22 thomas test_patch_prefer_new_path() {
815 be53ddb1 2022-03-22 thomas local testroot=`test_init patch_orig`
817 be53ddb1 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
819 be53ddb1 2022-03-22 thomas if [ $ret -ne 0 ]; then
820 be53ddb1 2022-03-22 thomas test_done $testroot $ret
824 be53ddb1 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
825 be53ddb1 2022-03-22 thomas --- alpha.orig
826 be53ddb1 2022-03-22 thomas +++ alpha
827 be53ddb1 2022-03-22 thomas @@ -1 +1,2 @@
829 be53ddb1 2022-03-22 thomas +was edited
832 be53ddb1 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
834 be53ddb1 2022-03-22 thomas if [ $ret -ne 0 ]; then
835 be53ddb1 2022-03-22 thomas test_done $testroot $ret
839 e1c219c8 2022-04-22 thomas echo 'M alpha' > $testroot/stdout.expected
840 49114f01 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
842 49114f01 2022-03-22 thomas if [ $ret -ne 0 ]; then
843 49114f01 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
845 49114f01 2022-03-22 thomas test_done $testroot $ret
848 ff7f34d3 2022-03-22 thomas test_patch_no_newline() {
849 ff7f34d3 2022-03-22 thomas local testroot=`test_init patch_no_newline`
851 ff7f34d3 2022-03-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
853 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
854 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
858 ff7f34d3 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
859 ff7f34d3 2022-03-22 thomas --- /dev/null
861 ff7f34d3 2022-03-22 thomas @@ -0,0 +1 @@
863 ff7f34d3 2022-03-22 thomas \ No newline at end of file
866 ff7f34d3 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
868 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
869 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
873 ff7f34d3 2022-03-22 thomas echo "A eta" > $testroot/stdout.expected
874 ff7f34d3 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
876 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
877 ff7f34d3 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
878 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
882 ff7f34d3 2022-03-22 thomas echo -n eta > $testroot/wt/eta.expected
883 ff7f34d3 2022-03-22 thomas cmp -s $testroot/wt/eta.expected $testroot/wt/eta
885 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
886 ff7f34d3 2022-03-22 thomas diff -u $testroot/wt/eta.expected $testroot/wt/eta
887 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
891 ff7f34d3 2022-03-22 thomas (cd $testroot/wt && got commit -m 'add eta') > /dev/null
893 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
894 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
898 ff7f34d3 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
901 ff7f34d3 2022-03-22 thomas @@ -1 +1 @@
903 ff7f34d3 2022-03-22 thomas \ No newline at end of file
905 ff7f34d3 2022-03-22 thomas \ No newline at end of file
908 ff7f34d3 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
910 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
911 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
915 ff7f34d3 2022-03-22 thomas echo "M eta" > $testroot/stdout.expected
916 ff7f34d3 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
918 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
919 ff7f34d3 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
920 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
924 ff7f34d3 2022-03-22 thomas echo -n ETA > $testroot/wt/eta.expected
925 ff7f34d3 2022-03-22 thomas cmp -s $testroot/wt/eta.expected $testroot/wt/eta
927 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
928 ff7f34d3 2022-03-22 thomas diff -u $testroot/wt/eta.expected $testroot/wt/eta
929 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
933 ff7f34d3 2022-03-22 thomas (cd $testroot/wt && got commit -m 'edit eta') > /dev/null
935 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
936 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
940 ff7f34d3 2022-03-22 thomas cat <<EOF > $testroot/wt/patch
943 ff7f34d3 2022-03-22 thomas @@ -1 +1 @@
945 ff7f34d3 2022-03-22 thomas \ No newline at end of file
949 ff7f34d3 2022-03-22 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
951 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
952 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
956 ff7f34d3 2022-03-22 thomas echo "M eta" > $testroot/stdout.expected
957 ff7f34d3 2022-03-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
959 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
960 ff7f34d3 2022-03-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
961 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
965 ff7f34d3 2022-03-22 thomas echo eta > $testroot/wt/eta.expected
966 ff7f34d3 2022-03-22 thomas cmp -s $testroot/wt/eta.expected $testroot/wt/eta
968 ff7f34d3 2022-03-22 thomas if [ $ret -ne 0 ]; then
969 ff7f34d3 2022-03-22 thomas diff -u $testroot/wt/eta.expected $testroot/wt/eta
971 ff7f34d3 2022-03-22 thomas test_done $testroot $ret
974 d9db2ff9 2022-04-16 thomas test_patch_strip() {
975 d9db2ff9 2022-04-16 thomas local testroot=`test_init patch_strip`
977 d9db2ff9 2022-04-16 thomas got checkout $testroot/repo $testroot/wt > /dev/null
979 d9db2ff9 2022-04-16 thomas if [ $ret -ne 0 ]; then
980 d9db2ff9 2022-04-16 thomas test_done $testroot $ret
984 d9db2ff9 2022-04-16 thomas cat <<EOF > $testroot/wt/patch
985 d9db2ff9 2022-04-16 thomas --- foo/bar/alpha.orig
986 d9db2ff9 2022-04-16 thomas +++ foo/bar/alpha
987 d9db2ff9 2022-04-16 thomas @@ -1 +1 @@
992 d9db2ff9 2022-04-16 thomas (cd $testroot/wt && got patch -p2 patch) > $testroot/stdout
994 d9db2ff9 2022-04-16 thomas if [ $ret -ne 0 ]; then
995 d9db2ff9 2022-04-16 thomas test_done $testroot $ret
999 d9db2ff9 2022-04-16 thomas echo "M alpha" >> $testroot/stdout.expected
1000 d9db2ff9 2022-04-16 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1002 d9db2ff9 2022-04-16 thomas if [ $ret -ne 0 ]; then
1003 d9db2ff9 2022-04-16 thomas diff -u $testroot/stdout.expected $testroot/stdout
1004 d9db2ff9 2022-04-16 thomas test_done $testroot $ret
1005 d9db2ff9 2022-04-16 thomas return 1
1008 d9db2ff9 2022-04-16 thomas (cd $testroot/wt && got revert alpha) > /dev/null 2>&1
1010 d9db2ff9 2022-04-16 thomas if [ $ret -ne 0 ]; then
1011 d9db2ff9 2022-04-16 thomas test_done $testroot $ret
1012 d9db2ff9 2022-04-16 thomas return 1
1015 d9db2ff9 2022-04-16 thomas (cd $testroot/wt && got patch -p3 patch) \
1016 d9db2ff9 2022-04-16 thomas 2> $testroot/stderr
1018 d9db2ff9 2022-04-16 thomas if [ $ret -eq 0 ]; then
1019 d9db2ff9 2022-04-16 thomas echo "stripped more components than available!"
1020 d9db2ff9 2022-04-16 thomas test_done $testroot 1
1021 d9db2ff9 2022-04-16 thomas return 1
1024 d9db2ff9 2022-04-16 thomas cat <<EOF > $testroot/stderr.expected
1025 d9db2ff9 2022-04-16 thomas got: can't strip 1 path-components from foo/bar/alpha: bad path
1028 d9db2ff9 2022-04-16 thomas cmp -s $testroot/stderr.expected $testroot/stderr
1030 d9db2ff9 2022-04-16 thomas if [ $ret -ne 0 ]; then
1031 d9db2ff9 2022-04-16 thomas diff -u $testroot/stderr.expected $testroot/stderr
1033 d9db2ff9 2022-04-16 thomas test_done $testroot 0
1036 bb90ca7b 2022-07-03 thomas test_patch_whitespace() {
1037 bb90ca7b 2022-07-03 thomas local testroot=`test_init patch_whitespace`
1039 bb90ca7b 2022-07-03 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1041 bb90ca7b 2022-07-03 thomas if [ $ret -ne 0 ]; then
1042 bb90ca7b 2022-07-03 thomas test_done $testroot $ret
1043 bb90ca7b 2022-07-03 thomas return 1
1046 bb90ca7b 2022-07-03 thomas trailing=" "
1048 bb90ca7b 2022-07-03 thomas cat <<EOF > $testroot/wt/hello.c
1049 bb90ca7b 2022-07-03 thomas #include <stdio.h>
1052 bb90ca7b 2022-07-03 thomas main(void)
1054 bb90ca7b 2022-07-03 thomas /* the trailing whitespace is on purpose */
1055 bb90ca7b 2022-07-03 thomas printf("hello, world\n");$trailing
1056 bb90ca7b 2022-07-03 thomas return 0;
1060 bb90ca7b 2022-07-03 thomas (cd $testroot/wt && got add hello.c && got ci -m '+hello.c') \
1061 bb90ca7b 2022-07-03 thomas > /dev/null
1063 bb90ca7b 2022-07-03 thomas if [ $ret -ne 0 ]; then
1064 bb90ca7b 2022-07-03 thomas test_done $testroot $ret
1065 bb90ca7b 2022-07-03 thomas return 1
1068 bb90ca7b 2022-07-03 thomas # test with a diff with various whitespace corruptions
1069 bb90ca7b 2022-07-03 thomas cat <<EOF > $testroot/wt/patch
1070 bb90ca7b 2022-07-03 thomas --- hello.c
1071 bb90ca7b 2022-07-03 thomas +++ hello.c
1072 bb90ca7b 2022-07-03 thomas @@ -5,5 +5,5 @@
1074 bb90ca7b 2022-07-03 thomas /* the trailing whitespace is on purpose */
1075 bb90ca7b 2022-07-03 thomas printf("hello, world\n");
1076 bb90ca7b 2022-07-03 thomas - return 0;
1077 bb90ca7b 2022-07-03 thomas + return 5; /* always fails */
1081 bb90ca7b 2022-07-03 thomas (cd $testroot/wt && got patch patch) \
1082 bb90ca7b 2022-07-03 thomas 2>$testroot/stderr >$testroot/stdout
1084 bb90ca7b 2022-07-03 thomas if [ $ret -ne 0 ]; then
1085 bb90ca7b 2022-07-03 thomas echo "failed to apply diff" >&2
1086 bb90ca7b 2022-07-03 thomas test_done $testroot $ret
1087 bb90ca7b 2022-07-03 thomas return 1
1090 bb90ca7b 2022-07-03 thomas echo 'M hello.c' > $testroot/stdout.expected
1091 bb90ca7b 2022-07-03 thomas echo '@@ -5,5 +5,5 @@ hunk contains mangled whitespace' \
1092 bb90ca7b 2022-07-03 thomas >> $testroot/stdout.expected
1093 bb90ca7b 2022-07-03 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1095 bb90ca7b 2022-07-03 thomas if [ $ret -ne 0 ]; then
1096 bb90ca7b 2022-07-03 thomas diff -u $testroot/stdout.expected $testroot/stdout
1097 bb90ca7b 2022-07-03 thomas test_done $testroot $ret
1098 bb90ca7b 2022-07-03 thomas return 1
1101 bb90ca7b 2022-07-03 thomas cat <<EOF > $testroot/wt/hello.c.expected
1102 bb90ca7b 2022-07-03 thomas #include <stdio.h>
1105 bb90ca7b 2022-07-03 thomas main(void)
1107 bb90ca7b 2022-07-03 thomas /* the trailing whitespace is on purpose */
1108 bb90ca7b 2022-07-03 thomas printf("hello, world\n");$trailing
1109 bb90ca7b 2022-07-03 thomas return 5; /* always fails */
1113 bb90ca7b 2022-07-03 thomas cmp -s $testroot/wt/hello.c.expected $testroot/wt/hello.c
1115 bb90ca7b 2022-07-03 thomas if [ $ret -ne 0 ]; then
1116 bb90ca7b 2022-07-03 thomas diff -u $testroot/wt/hello.c.expected $testroot/wt/hello.c
1118 bb90ca7b 2022-07-03 thomas test_done $testroot $ret
1121 72f46891 2022-04-23 thomas test_patch_relative_paths() {
1122 9a49df74 2022-04-23 thomas local testroot=`test_init patch_relative_paths`
1124 72f46891 2022-04-23 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1126 72f46891 2022-04-23 thomas if [ $ret -ne 0 ]; then
1127 72f46891 2022-04-23 thomas test_done $testroot $ret
1128 72f46891 2022-04-23 thomas return 1
1131 72f46891 2022-04-23 thomas cat <<EOF > $testroot/wt/gamma/patch
1132 72f46891 2022-04-23 thomas --- delta
1133 72f46891 2022-04-23 thomas +++ delta
1134 72f46891 2022-04-23 thomas @@ -1 +1 @@
1137 72f46891 2022-04-23 thomas --- /dev/null
1139 72f46891 2022-04-23 thomas @@ -0,0 +1 @@
1143 72f46891 2022-04-23 thomas (cd $testroot/wt/gamma && got patch patch) > $testroot/stdout
1145 72f46891 2022-04-23 thomas if [ $ret -ne 0 ]; then
1146 72f46891 2022-04-23 thomas test_done $testroot $ret
1147 72f46891 2022-04-23 thomas return 1
1150 72f46891 2022-04-23 thomas echo 'M gamma/delta' > $testroot/stdout.expected
1151 72f46891 2022-04-23 thomas echo 'A gamma/eta' >> $testroot/stdout.expected
1153 cfbf5531 2022-04-23 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1155 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1156 cfbf5531 2022-04-23 thomas diff -u $testroot/stdout.expected $testroot/stdout
1158 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1161 cfbf5531 2022-04-23 thomas test_patch_with_path_prefix() {
1162 cfbf5531 2022-04-23 thomas local testroot=`test_init patch_with_path_prefix`
1164 cfbf5531 2022-04-23 thomas got checkout -p gamma $testroot/repo $testroot/wt > /dev/null
1166 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1167 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1168 cfbf5531 2022-04-23 thomas return 1
1171 cfbf5531 2022-04-23 thomas cat <<EOF > $testroot/wt/patch
1172 cfbf5531 2022-04-23 thomas --- delta
1173 cfbf5531 2022-04-23 thomas +++ delta
1174 cfbf5531 2022-04-23 thomas @@ -1 +1 @@
1177 cfbf5531 2022-04-23 thomas --- /dev/null
1179 cfbf5531 2022-04-23 thomas @@ -0,0 +1 @@
1183 cfbf5531 2022-04-23 thomas (cd $testroot/wt && got patch patch) > $testroot/stdout
1185 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1186 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1187 cfbf5531 2022-04-23 thomas return 1
1190 cfbf5531 2022-04-23 thomas echo 'M delta' > $testroot/stdout.expected
1191 cfbf5531 2022-04-23 thomas echo 'A eta' >> $testroot/stdout.expected
1193 cfbf5531 2022-04-23 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1195 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1196 cfbf5531 2022-04-23 thomas diff -u $testroot/stdout.expected $testroot/stdout
1198 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1201 cfbf5531 2022-04-23 thomas test_patch_relpath_with_path_prefix() {
1202 cfbf5531 2022-04-23 thomas local testroot=`test_init patch_relpaths_with_path_prefix`
1204 cfbf5531 2022-04-23 thomas got checkout -p gamma $testroot/repo $testroot/wt > /dev/null
1206 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1207 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1208 cfbf5531 2022-04-23 thomas return 1
1211 cfbf5531 2022-04-23 thomas mkdir -p $testroot/wt/epsilon/zeta/
1213 cfbf5531 2022-04-23 thomas cat <<EOF > $testroot/wt/patch
1214 cfbf5531 2022-04-23 thomas --- /dev/null
1215 cfbf5531 2022-04-23 thomas +++ zeta/theta
1216 cfbf5531 2022-04-23 thomas @@ -0,0 +1 @@
1220 cfbf5531 2022-04-23 thomas (cd $testroot/wt/epsilon/zeta && got patch -p1 $testroot/wt/patch) \
1221 cfbf5531 2022-04-23 thomas > $testroot/stdout
1223 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1224 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1225 cfbf5531 2022-04-23 thomas return 1
1228 cfbf5531 2022-04-23 thomas echo 'A epsilon/zeta/theta' >> $testroot/stdout.expected
1230 72f46891 2022-04-23 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1232 72f46891 2022-04-23 thomas if [ $ret -ne 0 ]; then
1233 72f46891 2022-04-23 thomas diff -u $testroot/stdout.expected $testroot/stdout
1234 cfbf5531 2022-04-23 thomas test_done $testroot $ret
1235 cfbf5531 2022-04-23 thomas return 1
1238 cfbf5531 2022-04-23 thomas echo 'theta' > $testroot/theta.expected
1239 cfbf5531 2022-04-23 thomas cmp -s $testroot/wt/epsilon/zeta/theta $testroot/theta.expected
1241 cfbf5531 2022-04-23 thomas if [ $ret -ne 0 ]; then
1242 cfbf5531 2022-04-23 thomas diff -u $testroot/wt/epsilon/zeta/theta $testroot/theta.expected
1244 72f46891 2022-04-23 thomas test_done $testroot $ret
1247 eaef698f 2022-04-23 thomas test_patch_reverse() {
1248 eaef698f 2022-04-23 thomas local testroot=`test_init patch_reverse`
1250 eaef698f 2022-04-23 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1252 eaef698f 2022-04-23 thomas if [ $ret -ne 0 ]; then
1253 eaef698f 2022-04-23 thomas test_done $testroot $ret
1254 eaef698f 2022-04-23 thomas return 1
1257 eaef698f 2022-04-23 thomas cat <<EOF > $testroot/wt/patch
1258 eaef698f 2022-04-23 thomas --- alpha
1259 eaef698f 2022-04-23 thomas +++ alpha
1260 eaef698f 2022-04-23 thomas @@ -1 +1 @@
1262 eaef698f 2022-04-23 thomas \ No newline at end of file
1266 eaef698f 2022-04-23 thomas (cd $testroot/wt && got patch -R patch) > $testroot/stdout
1268 eaef698f 2022-04-23 thomas if [ $ret -ne 0 ]; then
1269 eaef698f 2022-04-23 thomas test_done $testroot $ret
1270 eaef698f 2022-04-23 thomas return 1
1273 eaef698f 2022-04-23 thomas echo "M alpha" > $testroot/stdout.expected
1274 eaef698f 2022-04-23 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1276 eaef698f 2022-04-23 thomas if [ $ret -ne 0 ]; then
1277 eaef698f 2022-04-23 thomas diff -u $testroot/stdout.expected $testroot/stdout
1278 eaef698f 2022-04-23 thomas test_done $testroot $ret
1279 eaef698f 2022-04-23 thomas return 1
1282 eaef698f 2022-04-23 thomas echo -n ALPHA > $testroot/wt/alpha.expected
1283 eaef698f 2022-04-23 thomas cmp -s $testroot/wt/alpha.expected $testroot/wt/alpha
1285 eaef698f 2022-04-23 thomas if [ $ret -ne 0 ]; then
1286 eaef698f 2022-04-23 thomas diff -u $testroot/wt/alpha.expected $testroot/wt/alpha
1288 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1291 0f76ab83 2022-06-23 thomas test_patch_merge_simple() {
1292 0f76ab83 2022-06-23 thomas local testroot=`test_init patch_merge_simple`
1294 0f76ab83 2022-06-23 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1296 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1297 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1298 0f76ab83 2022-06-23 thomas return 1
1301 0f76ab83 2022-06-23 thomas jot 10 > $testroot/wt/numbers
1302 25a880e1 2022-07-03 thomas chmod +x $testroot/wt/numbers
1303 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got add numbers && got commit -m +numbers) \
1304 0f76ab83 2022-06-23 thomas > /dev/null
1306 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1307 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1308 0f76ab83 2022-06-23 thomas return 1
1311 0f76ab83 2022-06-23 thomas jot 10 | sed 's/4/four/g' > $testroot/wt/numbers
1313 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got diff > $testroot/old.diff \
1314 0f76ab83 2022-06-23 thomas && got revert numbers) >/dev/null
1316 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1317 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1318 0f76ab83 2022-06-23 thomas return 1
1321 0f76ab83 2022-06-23 thomas jot 10 | sed 's/6/six/g' > $testroot/wt/numbers
1322 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got commit -m 'edit numbers') \
1323 0f76ab83 2022-06-23 thomas > /dev/null
1325 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1326 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1327 0f76ab83 2022-06-23 thomas return 1
1330 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got patch $testroot/old.diff) \
1331 762b8e82 2022-06-23 thomas > $testroot/stdout
1333 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1334 762b8e82 2022-06-23 thomas test_done $testroot $ret
1335 762b8e82 2022-06-23 thomas return 1
1338 762b8e82 2022-06-23 thomas echo 'G numbers' > $testroot/stdout.expected
1339 762b8e82 2022-06-23 thomas cmp -s $testroot/stdout $testroot/stdout.expected
1341 762b8e82 2022-06-23 thomas if [ $ret -ne 0 ]; then
1342 762b8e82 2022-06-23 thomas diff -u $testroot/stdout $testroot/stdout.expected
1343 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1344 0f76ab83 2022-06-23 thomas return 1
1347 0f76ab83 2022-06-23 thomas jot 10 | sed -e s/4/four/ -e s/6/six/ > $testroot/wt/numbers.expected
1348 0f76ab83 2022-06-23 thomas cmp -s $testroot/wt/numbers $testroot/wt/numbers.expected
1350 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1351 0f76ab83 2022-06-23 thomas diff -u $testroot/wt/numbers $testroot/wt/numbers.expected
1352 25a880e1 2022-07-03 thomas test_done $testroot $ret
1353 25a880e1 2022-07-03 thomas return 1
1356 25a880e1 2022-07-03 thomas test -x $testroot/wt/numbers
1358 25a880e1 2022-07-03 thomas if [ $ret -ne 0 ]; then
1359 25a880e1 2022-07-03 thomas echo "numbers lost the executable bit" >&2
1361 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1364 19dd85cb 2022-07-01 thomas test_patch_merge_gitdiff() {
1365 19dd85cb 2022-07-01 thomas local testroot=`test_init patch_merge_gitdiff`
1367 19dd85cb 2022-07-01 thomas jot 10 > $testroot/repo/numbers
1368 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add numbers && \
1369 d1e03b8c 2023-10-08 thomas git_commit $testroot/repo -m "nums"
1371 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1372 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1373 19dd85cb 2022-07-01 thomas return 1
1376 19dd85cb 2022-07-01 thomas jot 10 | sed 's/4/four/g' > $testroot/repo/numbers
1377 d1e03b8c 2023-10-08 thomas git -C $testroot/repo diff > $testroot/old.diff
1379 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1380 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1381 19dd85cb 2022-07-01 thomas return 1
1384 19dd85cb 2022-07-01 thomas # restore numbers
1385 19dd85cb 2022-07-01 thomas jot 10 > $testroot/repo/numbers
1387 19dd85cb 2022-07-01 thomas jot 10 | sed 's/6/six/g' > $testroot/repo/numbers
1388 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add numbers && \
1389 d1e03b8c 2023-10-08 thomas git_commit $testroot/repo -m "edit"
1391 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1392 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1393 19dd85cb 2022-07-01 thomas return 1
1396 19dd85cb 2022-07-01 thomas # now work with got:
1397 19dd85cb 2022-07-01 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1399 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1400 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1401 19dd85cb 2022-07-01 thomas return 1
1404 19dd85cb 2022-07-01 thomas (cd $testroot/wt && got patch $testroot/old.diff) > $testroot/stdout
1406 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1407 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1408 19dd85cb 2022-07-01 thomas return 1
1411 19dd85cb 2022-07-01 thomas echo 'G numbers' > $testroot/stdout.expected
1412 19dd85cb 2022-07-01 thomas cmp -s $testroot/stdout $testroot/stdout.expected
1414 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1415 19dd85cb 2022-07-01 thomas diff -u $testroot/stdout $testroot/stdout.expected
1417 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1420 7d8bcb99 2022-07-28 thomas test_patch_merge_base_provided() {
1421 7d8bcb99 2022-07-28 thomas local testroot=`test_init patch_merge_base_provided`
1423 7d8bcb99 2022-07-28 thomas got checkout $testroot/repo $testroot/wt >/dev/null
1425 7d8bcb99 2022-07-28 thomas if [ $ret -ne 0 ]; then
1426 7d8bcb99 2022-07-28 thomas test_done $testroot $ret
1427 7d8bcb99 2022-07-28 thomas return 1
1430 7d8bcb99 2022-07-28 thomas jot 10 > $testroot/wt/numbers
1431 7d8bcb99 2022-07-28 thomas (cd $testroot/wt && got add numbers && got commit -m +numbers) \
1432 7d8bcb99 2022-07-28 thomas >/dev/null
1434 7d8bcb99 2022-07-28 thomas if [ $ret -ne 0 ]; then
1435 7d8bcb99 2022-07-28 thomas test_done $testroot $ret
1436 7d8bcb99 2022-07-28 thomas return 1
1439 7d8bcb99 2022-07-28 thomas local commit_id=`git_show_head $testroot/repo`
1441 7d8bcb99 2022-07-28 thomas jot 10 | sed s/4/four/ > $testroot/wt/numbers
1443 7d8bcb99 2022-07-28 thomas # get rid of the metadata
1444 7d8bcb99 2022-07-28 thomas (cd $testroot/wt && got diff | sed -n '/^---/,$p' > patch) \
1445 7d8bcb99 2022-07-28 thomas >/dev/null
1447 7d8bcb99 2022-07-28 thomas jot 10 | sed s/6/six/ > $testroot/wt/numbers
1448 7d8bcb99 2022-07-28 thomas (cd $testroot/wt && got commit -m 'edit numbers') >/dev/null
1450 7d8bcb99 2022-07-28 thomas if [ $ret -ne 0 ]; then
1451 7d8bcb99 2022-07-28 thomas test_done $testroot $ret
1452 7d8bcb99 2022-07-28 thomas return 1
1455 7d8bcb99 2022-07-28 thomas (cd $testroot/wt && got patch -c $commit_id patch) >$testroot/stdout
1457 7d8bcb99 2022-07-28 thomas if [ $ret -ne 0 ]; then
1458 7d8bcb99 2022-07-28 thomas test_done $testroot $ret
1459 7d8bcb99 2022-07-28 thomas return 1
1462 7d8bcb99 2022-07-28 thomas echo 'G numbers' > $testroot/stdout.expected
1463 7d8bcb99 2022-07-28 thomas cmp -s $testroot/stdout $testroot/stdout.expected
1465 7d8bcb99 2022-07-28 thomas if [ $ret -ne 0 ]; then
1466 7d8bcb99 2022-07-28 thomas diff -u $testroot/stdout $testroot/stdout.expected
1467 7d8bcb99 2022-07-28 thomas test_done $testroot $ret
1468 7d8bcb99 2022-07-28 thomas return 1
1471 7d8bcb99 2022-07-28 thomas jot 10 | sed -e s/4/four/ -e s/6/six/ > $testroot/wt/numbers.expected
1472 7d8bcb99 2022-07-28 thomas cmp -s $testroot/wt/numbers $testroot/wt/numbers.expected
1474 7d8bcb99 2022-07-28 thomas if [ $ret -ne 0 ]; then
1475 7d8bcb99 2022-07-28 thomas diff -u $testroot/wt/numbers $testroot/wt/numbers.expected
1477 7d8bcb99 2022-07-28 thomas test_done $testroot $ret
1480 0f76ab83 2022-06-23 thomas test_patch_merge_conflict() {
1481 0f76ab83 2022-06-23 thomas local testroot=`test_init patch_merge_conflict`
1483 0f76ab83 2022-06-23 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1485 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1486 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1487 0f76ab83 2022-06-23 thomas return 1
1490 0f76ab83 2022-06-23 thomas jot 10 > $testroot/wt/numbers
1491 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got add numbers && got commit -m +numbers) \
1492 0f76ab83 2022-06-23 thomas > /dev/null
1494 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1495 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1496 0f76ab83 2022-06-23 thomas return 1
1499 016bfe4b 2022-06-23 thomas local commit_id=`git_show_head $testroot/repo`
1501 0f76ab83 2022-06-23 thomas jot 10 | sed 's/6/six/g' > $testroot/wt/numbers
1502 68ceedb3 2022-07-03 thomas echo ALPHA > $testroot/wt/alpha
1504 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got diff > $testroot/old.diff \
1505 68ceedb3 2022-07-03 thomas && got revert alpha numbers) >/dev/null
1507 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1508 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1509 0f76ab83 2022-06-23 thomas return 1
1512 0f76ab83 2022-06-23 thomas jot 10 | sed 's/6/3+3/g' > $testroot/wt/numbers
1513 68ceedb3 2022-07-03 thomas jot -c 3 a > $testroot/wt/alpha
1514 68ceedb3 2022-07-03 thomas (cd $testroot/wt && got commit -m 'edit alpha and numbers') \
1515 0f76ab83 2022-06-23 thomas > /dev/null
1517 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1518 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1519 0f76ab83 2022-06-23 thomas return 1
1522 0f76ab83 2022-06-23 thomas (cd $testroot/wt && got patch $testroot/old.diff) \
1523 762b8e82 2022-06-23 thomas > $testroot/stdout 2>/dev/null
1525 0f76ab83 2022-06-23 thomas if [ $ret -eq 0 ]; then
1526 0f76ab83 2022-06-23 thomas echo "got patch merged a diff that should conflict" >&2
1527 8e6eb32a 2023-05-14 thomas test_done $testroot 1
1528 0f76ab83 2022-06-23 thomas return 1
1531 68ceedb3 2022-07-03 thomas echo 'C alpha' > $testroot/stdout.expected
1532 68ceedb3 2022-07-03 thomas echo 'C numbers' >> $testroot/stdout.expected
1533 1faec3fb 2023-05-14 thomas echo 'Files with merge conflicts: 2' >> $testroot/stdout.expected
1534 762b8e82 2022-06-23 thomas cmp -s $testroot/stdout $testroot/stdout.expected
1536 762b8e82 2022-06-23 thomas if [ $ret -ne 0 ]; then
1537 762b8e82 2022-06-23 thomas diff -u $testroot/stdout $testroot/stdout.expected
1538 762b8e82 2022-06-23 thomas test_done $testroot $ret
1539 762b8e82 2022-06-23 thomas return 1
1542 0f76ab83 2022-06-23 thomas # XXX: prefixing every line with a tab otherwise got thinks
1543 0f76ab83 2022-06-23 thomas # the file has conflicts in it.
1544 68ceedb3 2022-07-03 thomas cat <<-EOF > $testroot/wt/alpha.expected
1545 68ceedb3 2022-07-03 thomas <<<<<<< --- alpha
1547 68ceedb3 2022-07-03 thomas ||||||| commit $commit_id
1553 68ceedb3 2022-07-03 thomas >>>>>>> +++ alpha
1556 0f76ab83 2022-06-23 thomas cat <<-EOF > $testroot/wt/numbers.expected
1562 0f76ab83 2022-06-23 thomas <<<<<<< --- numbers
1564 016bfe4b 2022-06-23 thomas ||||||| commit $commit_id
1568 0f76ab83 2022-06-23 thomas >>>>>>> +++ numbers
1575 68ceedb3 2022-07-03 thomas cmp -s $testroot/wt/alpha $testroot/wt/alpha.expected
1577 68ceedb3 2022-07-03 thomas if [ $ret -ne 0 ]; then
1578 68ceedb3 2022-07-03 thomas diff -u $testroot/wt/alpha $testroot/wt/alpha.expected
1579 68ceedb3 2022-07-03 thomas test_done $testroot $ret
1580 68ceedb3 2022-07-03 thomas return 1
1583 0f76ab83 2022-06-23 thomas cmp -s $testroot/wt/numbers $testroot/wt/numbers.expected
1585 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1586 0f76ab83 2022-06-23 thomas diff -u $testroot/wt/numbers $testroot/wt/numbers.expected
1588 eaef698f 2022-04-23 thomas test_done $testroot $ret
1591 0f76ab83 2022-06-23 thomas test_patch_merge_unknown_blob() {
1592 0f76ab83 2022-06-23 thomas local testroot=`test_init patch_merge_unknown_blob`
1594 0f76ab83 2022-06-23 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1596 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1597 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1598 0f76ab83 2022-06-23 thomas return 1
1601 0f76ab83 2022-06-23 thomas cat <<EOF > $testroot/wt/patch
1602 0f76ab83 2022-06-23 thomas I've got a
1603 c9a4f4fa 2022-06-23 thomas diff aaaabbbbccccddddeeeeffff0000111122223333 foo/bar
1605 0f76ab83 2022-06-23 thomas blob - aaaabbbbccccddddeeeeffff0000111122223333
1606 0f76ab83 2022-06-23 thomas and also a
1607 c9a4f4fa 2022-06-23 thomas blob + 0000111122223333444455556666777788889999
1608 0f76ab83 2022-06-23 thomas for this dummy diff
1609 0f76ab83 2022-06-23 thomas --- alpha
1610 0f76ab83 2022-06-23 thomas +++ alpha
1611 0f76ab83 2022-06-23 thomas @@ -1 +1 @@
1614 0f76ab83 2022-06-23 thomas will it work?
1617 0f76ab83 2022-06-23 thomas (cd $testroot/wt/ && got patch patch) > $testroot/stdout
1619 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1620 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1621 0f76ab83 2022-06-23 thomas return 1
1624 0f76ab83 2022-06-23 thomas echo 'M alpha' > $testroot/stdout.expected
1625 0f76ab83 2022-06-23 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1627 0f76ab83 2022-06-23 thomas if [ $ret -ne 0 ]; then
1628 0f76ab83 2022-06-23 thomas diff -u $testroot/stdout.expected $testroot/stdout
1629 c9a4f4fa 2022-06-23 thomas test_done $testroot $ret
1630 c9a4f4fa 2022-06-23 thomas return 1
1633 c9a4f4fa 2022-06-23 thomas # try again without a `diff' header
1635 c9a4f4fa 2022-06-23 thomas cat <<EOF > $testroot/wt/patch
1636 c9a4f4fa 2022-06-23 thomas I've got a
1637 c9a4f4fa 2022-06-23 thomas blob - aaaabbbbccccddddeeeeffff0000111122223333
1638 c9a4f4fa 2022-06-23 thomas and also a
1639 c9a4f4fa 2022-06-23 thomas blob + 0000111122223333444455556666777788889999
1640 c9a4f4fa 2022-06-23 thomas for this dummy diff
1641 c9a4f4fa 2022-06-23 thomas --- alpha
1642 c9a4f4fa 2022-06-23 thomas +++ alpha
1643 c9a4f4fa 2022-06-23 thomas @@ -1 +1 @@
1646 c9a4f4fa 2022-06-23 thomas will it work?
1649 c9a4f4fa 2022-06-23 thomas (cd $testroot/wt && got revert alpha > /dev/null && got patch patch) \
1650 c9a4f4fa 2022-06-23 thomas > $testroot/stdout
1652 c9a4f4fa 2022-06-23 thomas if [ $ret -ne 0 ]; then
1653 c9a4f4fa 2022-06-23 thomas test_done $testroot $ret
1654 c9a4f4fa 2022-06-23 thomas return 1
1657 c9a4f4fa 2022-06-23 thomas echo 'M alpha' > $testroot/stdout.expected
1658 c9a4f4fa 2022-06-23 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1660 c9a4f4fa 2022-06-23 thomas if [ $ret -ne 0 ]; then
1661 c9a4f4fa 2022-06-23 thomas diff -u $testroot/stdout.expected $testroot/stdout
1662 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1663 19dd85cb 2022-07-01 thomas return 1
1666 19dd85cb 2022-07-01 thomas # try again with a git-style diff
1668 19dd85cb 2022-07-01 thomas cat <<EOF > $testroot/wt/patch
1669 19dd85cb 2022-07-01 thomas diff --git a/alpha b/alpha
1670 19dd85cb 2022-07-01 thomas index 0123456789ab..abcdef012345 100644
1671 19dd85cb 2022-07-01 thomas --- a/alpha
1672 19dd85cb 2022-07-01 thomas +++ b/alpha
1673 19dd85cb 2022-07-01 thomas @@ -1 +1 @@
1678 19dd85cb 2022-07-01 thomas (cd $testroot/wt && got revert alpha > /dev/null && got patch patch) \
1679 19dd85cb 2022-07-01 thomas > $testroot/stdout
1681 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1682 19dd85cb 2022-07-01 thomas test_done $testroot $ret
1683 19dd85cb 2022-07-01 thomas return 1
1686 19dd85cb 2022-07-01 thomas echo 'M alpha' > $testroot/stdout.expected
1687 19dd85cb 2022-07-01 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1689 19dd85cb 2022-07-01 thomas if [ $ret -ne 0 ]; then
1690 19dd85cb 2022-07-01 thomas diff -u $testroot/stdout.expected $testroot/stdout
1692 0f76ab83 2022-06-23 thomas test_done $testroot $ret
1695 f4602cbd 2022-07-23 thomas test_patch_merge_reverse() {
1696 f4602cbd 2022-07-23 thomas local testroot=`test_init patch_merge_simple`
1698 f4602cbd 2022-07-23 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1700 f4602cbd 2022-07-23 thomas if [ $ret -ne 0 ]; then
1701 f4602cbd 2022-07-23 thomas test_done $testroot $ret
1702 f4602cbd 2022-07-23 thomas return 1
1705 f4602cbd 2022-07-23 thomas jot 10 > $testroot/wt/numbers
1706 f4602cbd 2022-07-23 thomas (cd $testroot/wt && got add numbers && got commit -m +numbers) \
1707 f4602cbd 2022-07-23 thomas > /dev/null
1709 f4602cbd 2022-07-23 thomas if [ $ret -ne 0 ]; then
1710 f4602cbd 2022-07-23 thomas test_done $testroot $ret
1711 f4602cbd 2022-07-23 thomas return 1
1714 f4602cbd 2022-07-23 thomas local commit_id=`git_show_head $testroot/repo`
1716 f4602cbd 2022-07-23 thomas jot 10 | sed s/5/five/g > $testroot/wt/numbers
1717 f4602cbd 2022-07-23 thomas (cd $testroot/wt && got diff > $testroot/wt/patch \
1718 f4602cbd 2022-07-23 thomas && got commit -m 'edit numbers') > /dev/null
1720 f4602cbd 2022-07-23 thomas if [ $ret -ne 0 ]; then
1721 f4602cbd 2022-07-23 thomas test_done $testroot $ret
1722 f4602cbd 2022-07-23 thomas return 1
1725 f4602cbd 2022-07-23 thomas jot 10 | sed -e s/5/five/g -e s/6/six/g > $testroot/wt/numbers
1726 f4602cbd 2022-07-23 thomas (cd $testroot/wt && got commit -m 'edit numbers again') >/dev/null
1728 f4602cbd 2022-07-23 thomas if [ $ret -ne 0 ]; then
1729 f4602cbd 2022-07-23 thomas test_done $testroot $ret
1730 f4602cbd 2022-07-23 thomas return 1
1733 f4602cbd 2022-07-23 thomas (cd $testroot/wt && got patch -R patch) >/dev/null 2>&1
1735 f4602cbd 2022-07-23 thomas if [ $ret -eq 0 ]; then
1736 f4602cbd 2022-07-23 thomas echo "unexpectedly reverted the patch" >&2
1737 f4602cbd 2022-07-23 thomas test_done $testroot 1
1738 f4602cbd 2022-07-23 thomas return 1
1741 f4602cbd 2022-07-23 thomas cat <<-EOF > $testroot/wt/numbers.expected
1746 f4602cbd 2022-07-23 thomas <<<<<<< --- numbers
1749 f4602cbd 2022-07-23 thomas ||||||| +++ numbers
1754 f4602cbd 2022-07-23 thomas >>>>>>> commit $commit_id
1761 f4602cbd 2022-07-23 thomas cmp -s $testroot/wt/numbers $testroot/wt/numbers.expected
1763 f4602cbd 2022-07-23 thomas if [ $ret -ne 0 ]; then
1764 f4602cbd 2022-07-23 thomas diff -u $testroot/wt/numbers $testroot/wt/numbers.expected
1766 37e766f4 2022-09-21 thomas test_done $testroot $ret
1769 37e766f4 2022-09-21 thomas test_patch_newfile_xbit_got_diff() {
1770 37e766f4 2022-09-21 thomas local testroot=`test_init patch_newfile_xbit`
1772 37e766f4 2022-09-21 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1774 37e766f4 2022-09-21 thomas if [ $ret -ne 0 ]; then
1775 37e766f4 2022-09-21 thomas test_done $testroot $ret
1776 37e766f4 2022-09-21 thomas return 1
1779 37e766f4 2022-09-21 thomas cat <<EOF > $testroot/wt/patch
1780 37e766f4 2022-09-21 thomas blob - /dev/null
1781 37e766f4 2022-09-21 thomas blob + abcdef0123456789abcdef012345678901234567 (mode 755)
1782 37e766f4 2022-09-21 thomas --- /dev/null
1783 37e766f4 2022-09-21 thomas +++ xfile
1784 37e766f4 2022-09-21 thomas @@ -0,0 +1,1 @@
1788 37e766f4 2022-09-21 thomas (cd $testroot/wt && got patch patch) > /dev/null
1790 37e766f4 2022-09-21 thomas if [ $ret -ne 0 ]; then
1791 37e766f4 2022-09-21 thomas test_done $testroot $ret
1792 37e766f4 2022-09-21 thomas return 1
1795 37e766f4 2022-09-21 thomas if [ ! -x $testroot/wt/xfile ]; then
1796 37e766f4 2022-09-21 thomas echo "failed to set xbit on newfile" >&2
1797 37e766f4 2022-09-21 thomas test_done $testroot 1
1798 37e766f4 2022-09-21 thomas return 1
1801 37e766f4 2022-09-21 thomas echo xfile > $testroot/wt/xfile.expected
1802 37e766f4 2022-09-21 thomas cmp -s $testroot/wt/xfile $testroot/wt/xfile.expected
1804 37e766f4 2022-09-21 thomas if [ $ret -ne 0 ]; then
1805 37e766f4 2022-09-21 thomas echo "fail"
1806 37e766f4 2022-09-21 thomas diff -u $testroot/wt/xfile $testroot/wt/xfile.expected
1809 f4602cbd 2022-07-23 thomas test_done $testroot $ret
1812 37e766f4 2022-09-21 thomas test_patch_newfile_xbit_git_diff() {
1813 37e766f4 2022-09-21 thomas local testroot=`test_init patch_newfile_xbit`
1815 37e766f4 2022-09-21 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1817 37e766f4 2022-09-21 thomas if [ $ret -ne 0 ]; then
1818 37e766f4 2022-09-21 thomas test_done $testroot $ret
1819 37e766f4 2022-09-21 thomas return 1
1822 37e766f4 2022-09-21 thomas cat <<EOF > $testroot/wt/patch
1823 37e766f4 2022-09-21 thomas diff --git a/xfile b/xfile
1824 37e766f4 2022-09-21 thomas new file mode 100755
1825 37e766f4 2022-09-21 thomas index 00000000..abcdef01
1826 37e766f4 2022-09-21 thomas --- /dev/null
1827 37e766f4 2022-09-21 thomas +++ b/xfile
1828 37e766f4 2022-09-21 thomas @@ -0,0 +1,1 @@
1832 37e766f4 2022-09-21 thomas (cd $testroot/wt && got patch patch) > /dev/null
1834 37e766f4 2022-09-21 thomas if [ $ret -ne 0 ]; then
1835 37e766f4 2022-09-21 thomas test_done $testroot $ret
1836 37e766f4 2022-09-21 thomas return 1
1839 37e766f4 2022-09-21 thomas if [ ! -x $testroot/wt/xfile ]; then
1840 37e766f4 2022-09-21 thomas echo "failed to set xbit on newfile" >&2
1841 37e766f4 2022-09-21 thomas test_done $testroot 1
1842 37e766f4 2022-09-21 thomas return 1
1845 37e766f4 2022-09-21 thomas echo xfile > $testroot/wt/xfile.expected
1846 37e766f4 2022-09-21 thomas cmp -s $testroot/wt/xfile $testroot/wt/xfile.expected
1848 37e766f4 2022-09-21 thomas if [ $ret -ne 0 ]; then
1849 37e766f4 2022-09-21 thomas echo "fail"
1850 37e766f4 2022-09-21 thomas diff -u $testroot/wt/xfile $testroot/wt/xfile.expected
1853 37e766f4 2022-09-21 thomas test_done $testroot $ret
1856 a2c162eb 2022-10-30 thomas test_patch_umask() {
1857 a2c162eb 2022-10-30 thomas local testroot=`test_init patch_umask`
1859 a2c162eb 2022-10-30 thomas got checkout "$testroot/repo" "$testroot/wt" >/dev/null
1861 a2c162eb 2022-10-30 thomas cat <<EOF >$testroot/wt/patch
1862 a2c162eb 2022-10-30 thomas --- alpha
1863 a2c162eb 2022-10-30 thomas +++ alpha
1864 a2c162eb 2022-10-30 thomas @@ -1 +1 @@
1866 a2c162eb 2022-10-30 thomas +modified alpha
1869 a2c162eb 2022-10-30 thomas # using a subshell to avoid clobbering global umask
1870 a2c162eb 2022-10-30 thomas (umask 077 && cd "$testroot/wt" && got patch <patch) >/dev/null
1872 a2c162eb 2022-10-30 thomas if [ $ret -ne 0 ]; then
1873 a2c162eb 2022-10-30 thomas test_done "$testroot" $ret
1874 a2c162eb 2022-10-30 thomas return 1
1877 a2c162eb 2022-10-30 thomas if ! ls -l "$testroot/wt/alpha" | grep -q ^-rw-------; then
1878 a2c162eb 2022-10-30 thomas echo "alpha is not 0600 after patch" >&2
1879 a2c162eb 2022-10-30 thomas ls -l "$testroot/wt/alpha" >&2
1880 a2c162eb 2022-10-30 thomas test_done "$testroot" 1
1881 a2c162eb 2022-10-30 thomas return 1
1884 a2c162eb 2022-10-30 thomas test_done "$testroot" 0
1887 650a3405 2023-01-02 thomas test_patch_remove_binary_file() {
1888 650a3405 2023-01-02 thomas local testroot=`test_init patch_remove_binary_file`
1890 650a3405 2023-01-02 thomas if ! got checkout $testroot/repo $testroot/wt >/dev/null; then
1891 650a3405 2023-01-02 thomas test_done $testroot $ret
1892 650a3405 2023-01-02 thomas return 1
1895 650a3405 2023-01-02 thomas dd if=/dev/zero of=$testroot/wt/x bs=1 count=16 2>/dev/null >&2
1896 650a3405 2023-01-02 thomas (cd $testroot/wt && got add x && got commit -m +x) >/dev/null
1898 650a3405 2023-01-02 thomas (cd $testroot/wt && \
1899 650a3405 2023-01-02 thomas got branch demo && \
1900 650a3405 2023-01-02 thomas got rm x && \
1901 650a3405 2023-01-02 thomas got ci -m -x &&
1902 650a3405 2023-01-02 thomas got up -b master) >/dev/null
1904 650a3405 2023-01-02 thomas echo 'D x' > $testroot/stdout.expected
1906 650a3405 2023-01-02 thomas (cd $testroot/wt && got log -c demo -l 1 -p >patch)
1908 650a3405 2023-01-02 thomas (cd $testroot/wt && got patch <patch) > $testroot/stdout
1909 650a3405 2023-01-02 thomas if [ $? -ne 0 ]; then
1910 650a3405 2023-01-02 thomas echo 'patch failed' >&2
1911 650a3405 2023-01-02 thomas test_done $testroot 1
1912 650a3405 2023-01-02 thomas return 1
1915 650a3405 2023-01-02 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
1916 650a3405 2023-01-02 thomas diff -u $testroot/stdout.expected $testroot/stdout
1917 650a3405 2023-01-02 thomas test_done $testroot 1
1918 650a3405 2023-01-02 thomas return 1
1921 650a3405 2023-01-02 thomas # try again using a git produced diff
1922 650a3405 2023-01-02 thomas (cd $testroot/wt && got revert x) >/dev/null
1924 d1e03b8c 2023-10-08 thomas git -C $testroot/repo show demo >$testroot/wt/patch
1926 650a3405 2023-01-02 thomas (cd $testroot/wt && got patch <patch) > $testroot/stdout
1927 650a3405 2023-01-02 thomas if [ $? -ne 0 ]; then
1928 650a3405 2023-01-02 thomas echo 'patch failed' >&2
1929 650a3405 2023-01-02 thomas test_done $testroot 1
1930 650a3405 2023-01-02 thomas return 1
1933 650a3405 2023-01-02 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
1934 650a3405 2023-01-02 thomas diff -u $testroot/stdout.expected $testroot/stdout
1935 650a3405 2023-01-02 thomas test_done $testroot 1
1936 650a3405 2023-01-02 thomas return 1
1939 650a3405 2023-01-02 thomas # try again using a diff(1) style patch
1940 650a3405 2023-01-02 thomas (cd $testroot/wt && got revert x) >/dev/null
1942 650a3405 2023-01-02 thomas echo "Binary files x and /dev/null differ" >$testroot/wt/patch
1943 650a3405 2023-01-02 thomas (cd $testroot/wt && got patch <patch) >$testroot/stdout
1944 650a3405 2023-01-02 thomas if [ $? -ne 0 ]; then
1945 650a3405 2023-01-02 thomas echo 'patch failed' >&2
1946 650a3405 2023-01-02 thomas test_done $testroot 1
1947 650a3405 2023-01-02 thomas return 1
1950 650a3405 2023-01-02 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
1951 650a3405 2023-01-02 thomas diff -u $testroot/stdout.expected $testroot/stdout
1952 650a3405 2023-01-02 thomas test_done $testroot 1
1953 650a3405 2023-01-02 thomas return 1
1956 650a3405 2023-01-02 thomas test_done $testroot 0
1959 fb885120 2023-07-19 thomas test_patch_commit_keywords() {
1960 fb885120 2023-07-19 thomas local testroot=`test_init patch_commit_keywords`
1962 fb885120 2023-07-19 thomas got checkout $testroot/repo $testroot/wt >/dev/null
1964 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
1965 fb885120 2023-07-19 thomas test_done $testroot $ret
1966 fb885120 2023-07-19 thomas return 1
1969 fb885120 2023-07-19 thomas jot 10 > $testroot/wt/numbers
1970 fb885120 2023-07-19 thomas (cd $testroot/wt && got add numbers && got commit -m +numbers) \
1971 fb885120 2023-07-19 thomas >/dev/null
1973 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
1974 fb885120 2023-07-19 thomas test_done $testroot $ret
1975 fb885120 2023-07-19 thomas return 1
1978 fb885120 2023-07-19 thomas jot 10 | sed s/4/four/ > $testroot/wt/numbers
1980 fb885120 2023-07-19 thomas # get rid of the metadata
1981 fb885120 2023-07-19 thomas (cd $testroot/wt && got diff | sed -n '/^---/,$p' > patch) \
1982 fb885120 2023-07-19 thomas >/dev/null
1984 fb885120 2023-07-19 thomas jot 10 | sed s/6/six/ > $testroot/wt/numbers
1985 fb885120 2023-07-19 thomas (cd $testroot/wt && got commit -m 'edit numbers') >/dev/null
1987 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
1988 fb885120 2023-07-19 thomas test_done $testroot $ret
1989 fb885120 2023-07-19 thomas return 1
1992 fb885120 2023-07-19 thomas (cd $testroot/wt && got patch -c :head:- patch) >$testroot/stdout
1994 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
1995 fb885120 2023-07-19 thomas test_done $testroot $ret
1996 fb885120 2023-07-19 thomas return 1
1999 fb885120 2023-07-19 thomas echo 'G numbers' > $testroot/stdout.expected
2000 fb885120 2023-07-19 thomas cmp -s $testroot/stdout $testroot/stdout.expected
2002 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
2003 fb885120 2023-07-19 thomas diff -u $testroot/stdout $testroot/stdout.expected
2004 fb885120 2023-07-19 thomas test_done $testroot $ret
2005 fb885120 2023-07-19 thomas return 1
2008 fb885120 2023-07-19 thomas jot 10 | sed -e s/4/four/ -e s/6/six/ > $testroot/wt/numbers.expected
2009 fb885120 2023-07-19 thomas cmp -s $testroot/wt/numbers $testroot/wt/numbers.expected
2011 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
2012 fb885120 2023-07-19 thomas diff -u $testroot/wt/numbers $testroot/wt/numbers.expected
2015 fb885120 2023-07-19 thomas (cd "$testroot/wt" && got rv numbers > /dev/null)
2017 fb885120 2023-07-19 thomas (cd $testroot/wt && got patch -c :base:- patch) >$testroot/stdout
2019 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
2020 fb885120 2023-07-19 thomas test_done $testroot $ret
2021 fb885120 2023-07-19 thomas return 1
2024 fb885120 2023-07-19 thomas echo 'G numbers' > $testroot/stdout.expected
2025 fb885120 2023-07-19 thomas cmp -s $testroot/stdout $testroot/stdout.expected
2027 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
2028 fb885120 2023-07-19 thomas diff -u $testroot/stdout $testroot/stdout.expected
2029 fb885120 2023-07-19 thomas test_done $testroot $ret
2030 fb885120 2023-07-19 thomas return 1
2033 fb885120 2023-07-19 thomas jot 10 | sed -e s/4/four/ -e s/6/six/ > $testroot/wt/numbers.expected
2034 fb885120 2023-07-19 thomas cmp -s $testroot/wt/numbers $testroot/wt/numbers.expected
2036 fb885120 2023-07-19 thomas if [ $ret -ne 0 ]; then
2037 fb885120 2023-07-19 thomas diff -u $testroot/wt/numbers $testroot/wt/numbers.expected
2040 fb885120 2023-07-19 thomas test_done $testroot $ret
2043 069bbb86 2022-03-07 thomas test_parseargs "$@"
2044 3b6e8f19 2022-08-06 thomas run_test test_patch_basic
2045 069bbb86 2022-03-07 thomas run_test test_patch_dont_apply
2046 069bbb86 2022-03-07 thomas run_test test_patch_malformed
2047 069bbb86 2022-03-07 thomas run_test test_patch_no_patch
2048 069bbb86 2022-03-07 thomas run_test test_patch_equals_for_context
2049 bb2ad8ff 2022-03-13 thomas run_test test_patch_rename
2050 10e55613 2022-03-22 thomas run_test test_patch_illegal_status
2051 eaf99875 2022-03-22 thomas run_test test_patch_nop
2052 da09d8ed 2022-03-22 thomas run_test test_patch_preserve_perm
2053 e0c1f81c 2022-03-22 thomas run_test test_patch_create_dirs
2054 49114f01 2022-03-22 thomas run_test test_patch_with_offset
2055 be53ddb1 2022-03-22 thomas run_test test_patch_prefer_new_path
2056 ff7f34d3 2022-03-22 thomas run_test test_patch_no_newline
2057 d9db2ff9 2022-04-16 thomas run_test test_patch_strip
2058 bb90ca7b 2022-07-03 thomas run_test test_patch_whitespace
2059 72f46891 2022-04-23 thomas run_test test_patch_relative_paths
2060 cfbf5531 2022-04-23 thomas run_test test_patch_with_path_prefix
2061 cfbf5531 2022-04-23 thomas run_test test_patch_relpath_with_path_prefix
2062 eaef698f 2022-04-23 thomas run_test test_patch_reverse
2063 0f76ab83 2022-06-23 thomas run_test test_patch_merge_simple
2064 19dd85cb 2022-07-01 thomas run_test test_patch_merge_gitdiff
2065 7d8bcb99 2022-07-28 thomas run_test test_patch_merge_base_provided
2066 0f76ab83 2022-06-23 thomas run_test test_patch_merge_conflict
2067 0f76ab83 2022-06-23 thomas run_test test_patch_merge_unknown_blob
2068 f4602cbd 2022-07-23 thomas run_test test_patch_merge_reverse
2069 37e766f4 2022-09-21 thomas run_test test_patch_newfile_xbit_got_diff
2070 37e766f4 2022-09-21 thomas run_test test_patch_newfile_xbit_git_diff
2071 a2c162eb 2022-10-30 thomas run_test test_patch_umask
2072 650a3405 2023-01-02 thomas run_test test_patch_remove_binary_file
2073 fb885120 2023-07-19 thomas run_test test_patch_commit_keywords