tg.sh: handle help -h
[topgit/pro.git] / t / t1070-diff_added_lines.sh
blob8f75229b35d2556f3648f2d798b7f80ead54421d
1 #!/bin/sh
3 test_description='check diff_added_lines finds all added lines'
5 . ./test-lib.sh
7 test_plan 20
9 test_expect_success 'diff generates dreaded "\ No newline at end of file"' '
10 printf "%s" "" >file1 &&
11 printf "%s" "newline" >file2 &&
12 printf "%s" "\
13 diff --git file1 file2
14 index e69de29bb2d1d643..8010d218a3d3561b 100644
15 --- file1
16 +++ file2
17 @@ -0,0 +1 @@
18 +newline
19 \\ No newline at end of file
20 " >expected &&
21 test_expect_code 1 test_diff file1 file2 >actual &&
22 test_diff expected actual
25 # if $3 is non-empty use --ignore-space-at-eol
26 diff_strings() {
27 printf "%s" "$1" >file1 &&
28 printf "%s" "$2" >file2 &&
29 ec_=0 &&
30 test_diff ${3:+--ignore-space-at-eol} file1 file2 || ec_=$?
31 test $ec_ -eq 0 || test $ec_ -eq 1 || die
32 return 0
35 test_expect_success 'no added lines for two empty files' '
36 tg_test_include &&
37 printf "%s" "" >expected &&
38 diff_strings "" "" | diff_added_lines >actual &&
39 test_diff expected actual
42 test_expect_success 'one line added to empty file' '
43 tg_test_include &&
44 printf "%s\n" "newline" >expected &&
45 diff_strings "" "newline
46 " | diff_added_lines >actual &&
47 test_diff expected actual
50 test_expect_success 'one line w/o nl added to empty file' '
51 tg_test_include &&
52 printf "%s\n" "newline" >expected &&
53 diff_strings "" "newline" | diff_added_lines >actual &&
54 test_diff expected actual
57 test_expect_success 'two lines added to empty file' '
58 tg_test_include &&
59 printf "%s\n" "line1" "line2" >expected &&
60 diff_strings "" "line1
61 line2
62 " | diff_added_lines >actual &&
63 test_diff expected actual
66 test_expect_success 'two lines w/o final nl added to empty file' '
67 tg_test_include &&
68 printf "%s\n" "line1" "line2" >expected &&
69 diff_strings "" "line1
70 line2" | diff_added_lines >actual &&
71 test_diff expected actual
74 test_expect_success 'one line prepended to one line file' '
75 tg_test_include &&
76 printf "%s\n" "newline" >expected &&
77 diff_strings "\
78 original
79 " "\
80 newline
81 original
82 " | diff_added_lines >actual &&
83 test_diff expected actual
86 test_expect_success 'one line appended to one line file' '
87 tg_test_include &&
88 printf "%s\n" "newline" >expected &&
89 diff_strings "\
90 original
91 " "\
92 original
93 newline
94 " | diff_added_lines >actual &&
95 test_diff expected actual
98 test_expect_success 'one line appended w/o nl to one line file' '
99 tg_test_include &&
100 printf "%s\n" "newline" >expected &&
101 diff_strings "\
102 original
103 " "\
104 original
105 newline" | diff_added_lines >actual &&
106 test_diff expected actual
109 test_expect_success 'one line prepended and appended to one line file' '
110 tg_test_include &&
111 printf "%s\n" "newline1" "newline2" >expected &&
112 diff_strings "\
113 original
114 " "\
115 newline1
116 original
117 newline2
118 " | diff_added_lines >actual &&
119 test_diff expected actual
122 test_expect_success 'one line prepended and appended w/o nl to one line file' '
123 tg_test_include &&
124 printf "%s\n" "newline1" "newline2" >expected &&
125 diff_strings "\
126 original
127 " "\
128 newline1
129 original
130 newline2" | diff_added_lines >actual &&
131 test_diff expected actual
134 test_expect_success 'one line prepended to one line w/o nl file' '
135 tg_test_include &&
136 printf "%s\n" "newline" >expected &&
137 diff_strings "\
138 original" "\
139 newline
140 original" | diff_added_lines >actual &&
141 test_diff expected actual
144 test_expect_success 'one line appended to one line w/o nl file' '
145 tg_test_include &&
146 # the original shows up as a "+" because it got a nl added after it
147 printf "%s\n" "original" "newline" >expected &&
148 diff_strings "\
149 original" "\
150 original
151 newline
152 " | diff_added_lines >actual &&
153 test_diff expected actual
156 test_expect_success 'one line appended to one line w/o nl file w/ opt' '
157 tg_test_include &&
158 printf "%s\n" "newline" >expected &&
159 diff_strings "\
160 original" "\
161 original
162 newline
163 " 1 | diff_added_lines >actual &&
164 test_diff expected actual
167 test_expect_success 'one line appended w/o nl to one line w/o nl file' '
168 tg_test_include &&
169 # the original shows up as a "+" because it got a nl added after it
170 printf "%s\n" "original" "newline" >expected &&
171 diff_strings "\
172 original" "\
173 original
174 newline" | diff_added_lines >actual &&
175 test_diff expected actual
178 test_expect_success 'one line appended w/o nl to one line w/o nl file w/ opt' '
179 tg_test_include &&
180 printf "%s\n" "newline" >expected &&
181 diff_strings "\
182 original" "\
183 original
184 newline" 1 | diff_added_lines >actual &&
185 test_diff expected actual
188 test_expect_success 'one line prepended and appended to one line w/o nl file' '
189 tg_test_include &&
190 # the original shows up as a "+" because it got a nl added after it
191 printf "%s\n" "newline1" "original" "newline2" >expected &&
192 diff_strings "\
193 original" "\
194 newline1
195 original
196 newline2
197 " | diff_added_lines >actual &&
198 test_diff expected actual
201 test_expect_success 'one line prepended and appended to one line w/o nl file w/ opt' '
202 tg_test_include &&
203 printf "%s\n" "newline1" "newline2" >expected &&
204 diff_strings "\
205 original" "\
206 newline1
207 original
208 newline2
209 " 1 | diff_added_lines >actual &&
210 test_diff expected actual
213 test_expect_success 'one line prepended and appended w/o nl to one line w/o nl file' '
214 tg_test_include &&
215 # the original shows up as a "+" because it got a nl added after it
216 printf "%s\n" "newline1" "original" "newline2" >expected &&
217 diff_strings "\
218 original" "\
219 newline1
220 original
221 newline2" | diff_added_lines >actual &&
222 test_diff expected actual
225 test_expect_success 'one line prepended and appended w/o nl to one line w/o nl file w/ opt' '
226 tg_test_include &&
227 printf "%s\n" "newline1" "newline2" >expected &&
228 diff_strings "\
229 original" "\
230 newline1
231 original
232 newline2" 1 | diff_added_lines >actual &&
233 test_diff expected actual
236 test_done