patch: replace it with toybox's implementation
[oweals/busybox.git] / testsuite / patch.tests
1 #!/bin/sh
2 # Copyright 2008 by Denys Vlasenko
3 # Licensed under GPL v2, see file LICENSE for details.
4
5 . ./testing.sh
6
7 # testing "test name" "options" "expected result" "file input" "stdin"
8
9 testing "patch with old_file == new_file" \
10         'patch 2>&1; echo $?; cat input' \
11 "\
12 patching file input
13 0
14 qwe
15 asd
16 zxc
17 " \
18 "\
19 qwe
20 zxc
21 " \
22 "\
23 --- input       Jan 01 01:01:01 2000
24 +++ input       Jan 01 01:01:01 2000
25 @@ -1,2 +1,3 @@
26  qwe
27 +asd
28  zxc
29 " \
30
31 testing "patch with nonexistent old_file" \
32         'patch 2>&1; echo $?; cat input' \
33 "\
34 patching file input
35 0
36 qwe
37 asd
38 zxc
39 " \
40 "\
41 qwe
42 zxc
43 " \
44 "\
45 --- input.doesnt_exist  Jan 01 01:01:01 2000
46 +++ input       Jan 01 01:01:01 2000
47 @@ -1,2 +1,3 @@
48  qwe
49 +asd
50  zxc
51 " \
52
53 testing "patch -R with nonexistent old_file" \
54         'patch -R 2>&1; echo $?; cat input' \
55 "\
56 patching file input
57 0
58 qwe
59 zxc
60 " \
61 "\
62 qwe
63 asd
64 zxc
65 " \
66 "\
67 --- input.doesnt_exist  Jan 01 01:01:01 2000
68 +++ input       Jan 01 01:01:01 2000
69 @@ -1,2 +1,3 @@
70  qwe
71 +asd
72  zxc
73 " \
74
75 testing "patch detects already applied hunk" \
76         'patch 2>&1; echo $?; cat input' \
77 "\
78 Possibly reversed hunk 1 at 2
79 Hunk 1 FAILED 1/1.
80  abc
81 +def
82  123
83 patching file input
84 1
85 abc
86 def
87 123
88 " \
89 "\
90 abc
91 def
92 123
93 " \
94 "\
95 --- input.old   Jan 01 01:01:01 2000
96 +++ input       Jan 01 01:01:01 2000
97 @@ -1,2 +1,3 @@
98  abc
99 +def
100  123
101 " \
102
103 # Currently fails (erroneously appends second "456" line):
104 false && testing "patch detects already applied hunk" \
105         'patch 2>&1; echo $?; cat input' \
106 "\
107 patching file input
108 patch: hunk #1 FAILED at 2
109 patch: 1 out of 1 hunk FAILED
110 1
111 abc
112 123
113 456
114 " \
115 "\
116 abc
117 123
118 456
119 " \
120 "\
121 --- input.old   Jan 01 01:01:01 2000
122 +++ input       Jan 01 01:01:01 2000
123 @@ -1,2 +1,3 @@
124  abc
125  123
126 +456
127 " \
128
129 rm input.orig 2>/dev/null
130
131 exit $FAILCOUNT