summaryrefslogtreecommitdiff
path: root/testsuite/patch.tests
blob: e663b32a3c21a5a297a0beb023b06af2032cb97f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/bin/sh
# Copyright 2008 by Denys Vlasenko
# Licensed under GPL v2, see file LICENSE for details.

. ./testing.sh

# testing "test name" "command(s)" "expected result" "file input" "stdin"

testing "patch with old_file == new_file" \
	'patch 2>&1; echo $?; cat input' \
"\
patching file input
0
qwe
asd
zxc
" \
"\
qwe
zxc
" \
"\
--- input	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
" \

testing "patch with nonexistent old_file" \
	'patch 2>&1; echo $?; cat input' \
"\
patching file input
0
qwe
asd
zxc
" \
"\
qwe
zxc
" \
"\
--- input.doesnt_exist	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
" \

testing "patch -R with nonexistent old_file" \
	'patch -R 2>&1; echo $?; cat input' \
"\
patching file input
0
qwe
zxc
" \
"\
qwe
asd
zxc
" \
"\
--- input.doesnt_exist	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
" \

testing "patch detects already applied hunk" \
	'patch 2>&1; echo $?; cat input' \
"\
Possibly reversed hunk 1 at 2
Hunk 1 FAILED 1/1.
 abc
+def
 123
patching file input
1
abc
def
123
" \
"\
abc
def
123
" \
"\
--- input.old	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 abc
+def
 123
" \

# Currently fails (erroneously appends second "456" line):
false && testing "patch detects already applied hunk" \
	'patch 2>&1; echo $?; cat input' \
"\
patching file input
patch: hunk #1 FAILED at 2
patch: 1 out of 1 hunk FAILED
1
abc
123
456
" \
"\
abc
123
456
" \
"\
--- input.old	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 abc
 123
+456
" \

# testing "test name" "command(s)" "expected result" "file input" "stdin"

testing "patch -N ignores already applied hunk" \
	'patch -N 2>&1; echo $?; cat input' \
"\
patching file input
0
abc
def
123
" \
"\
abc
def
123
" \
"\
--- input
+++ input
@@ -1,2 +1,3 @@
 abc
+def
 123
" \

rm input.orig 2>/dev/null

exit $FAILCOUNT