source: MondoRescue/branches/3.3/mindi-busybox/testsuite/diff.tests@ 3621

Last change on this file since 3621 was 3621, checked in by Bruno Cornec, 7 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

  • Property svn:executable set to *
File size: 4.0 KB
Line 
1#!/bin/sh
2# Copyright 2008 by Denys Vlasenko
3# Licensed under GPLv2, see file LICENSE in this source tree.
4
5. ./testing.sh
6
7# testing "test name" "commands" "expected result" "file input" "stdin"
8
9# diff outputs date/time in the header, which should not be analysed
10# NB: sed has tab character in s command!
11TRIM_TAB="sed 's/ .*//'"
12
13testing "diff of stdin" \
14 "diff -u - input | $TRIM_TAB" \
15"\
16--- -
17+++ input
18@@ -1 +1,3 @@
19+qwe
20 asd
21+zxc
22" \
23 "qwe\nasd\nzxc\n" \
24 "asd\n"
25
26testing "diff of stdin, no newline in the file" \
27 "diff -u - input | $TRIM_TAB" \
28"\
29--- -
30+++ input
31@@ -1 +1,3 @@
32+qwe
33 asd
34+zxc
35\\ No newline at end of file
36" \
37 "qwe\nasd\nzxc" \
38 "asd\n"
39
40# we also test that stdin is in fact NOT read
41testing "diff of stdin, twice" \
42 'diff - -; echo $?; wc -c' \
43 "0\n5\n" \
44 "" \
45 "stdin"
46
47testing "diff of empty file against stdin" \
48 "diff -u - input | $TRIM_TAB" \
49"\
50--- -
51+++ input
52@@ -1 +0,0 @@
53-a
54" \
55 "" \
56 "a\n"
57
58testing "diff of empty file against nonempty one" \
59 "diff -u - input | $TRIM_TAB" \
60"\
61--- -
62+++ input
63@@ -0,0 +1 @@
64+a
65" \
66 "a\n" \
67 ""
68
69testing "diff -b treats EOF as whitespace" \
70 'diff -ub - input; echo $?' \
71 "0\n" \
72 "abc" \
73 "abc "
74
75testing "diff -b treats all spaces as equal" \
76 'diff -ub - input; echo $?' \
77 "0\n" \
78 "a \t c\n" \
79 "a\t \tc\n"
80
81testing "diff -B ignores changes whose lines are all blank" \
82 'diff -uB - input; echo $?' \
83 "0\n" \
84 "a\n" \
85 "\na\n\n"
86
87testing "diff -B does not ignore changes whose lines are not all blank" \
88 "diff -uB - input | $TRIM_TAB" \
89"\
90--- -
91+++ input
92@@ -1,3 +1 @@
93-
94-b
95-
96+a
97" \
98 "a\n" \
99 "\nb\n\n"
100
101testing "diff -B ignores blank single line change" \
102 'diff -qB - input; echo $?' \
103 "0\n" \
104 "\n1\n" \
105 "1\n"
106
107testing "diff -B does not ignore non-blank single line change" \
108 'diff -qB - input; echo $?' \
109 "Files - and input differ\n1\n" \
110 "0\n" \
111 "1\n"
112
113testing "diff always takes context from old file" \
114 "diff -ub - input | $TRIM_TAB" \
115"\
116--- -
117+++ input
118@@ -1 +1,3 @@
119+abc
120 a c
121+def
122" \
123 "abc\na c\ndef\n" \
124 "a c\n"
125
126# testing "test name" "commands" "expected result" "file input" "stdin"
127
128# clean up
129rm -rf diff1 diff2
130
131mkdir diff1 diff2 diff2/subdir
132echo qwe >diff1/-
133echo asd >diff2/subdir/-
134optional FEATURE_DIFF_DIR
135testing "diff diff1 diff2/subdir" \
136 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
137"\
138--- diff1/-
139+++ diff2/subdir/-
140@@ -1 +1 @@
141-qwe
142+asd
143" \
144 "" ""
145SKIP=
146
147# using directory structure from prev test...
148optional FEATURE_DIFF_DIR
149testing "diff dir dir2/file/-" \
150 "diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \
151"\
152--- diff1/-
153+++ diff2/subdir/-
154@@ -1 +1 @@
155-qwe
156+asd
157" \
158 "" ""
159SKIP=
160
161# using directory structure from prev test...
162mkdir diff1/test
163mkfifo diff2/subdir/test
164optional FEATURE_DIFF_DIR
165testing "diff of dir and fifo" \
166 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
167"\
168--- diff1/-
169+++ diff2/subdir/-
170@@ -1 +1 @@
171-qwe
172+asd
173Only in diff2/subdir: test
174" \
175 "" ""
176SKIP=
177
178# using directory structure from prev test...
179rmdir diff1/test
180echo >diff1/test
181optional FEATURE_DIFF_DIR
182testing "diff of file and fifo" \
183 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
184"\
185--- diff1/-
186+++ diff2/subdir/-
187@@ -1 +1 @@
188-qwe
189+asd
190File diff2/subdir/test is not a regular file or directory and was skipped
191" \
192 "" ""
193SKIP=
194
195# using directory structure from prev test...
196mkfifo diff1/test2
197optional FEATURE_DIFF_DIR
198testing "diff -rN does not read non-regular files" \
199 "diff -urN diff1 diff2/subdir | $TRIM_TAB" \
200"\
201--- diff1/-
202+++ diff2/subdir/-
203@@ -1 +1 @@
204-qwe
205+asd
206File diff2/subdir/test is not a regular file or directory and was skipped
207File diff1/test2 is not a regular file or directory and was skipped
208" \
209 "" ""
210SKIP=
211
212# clean up
213rm -rf diff1 diff2
214
215# NOT using directory structure from prev test...
216mkdir diff1 diff2
217echo qwe >diff1/-
218echo rty >diff2/-
219optional FEATURE_DIFF_DIR
220testing "diff diff1 diff2/" \
221 "diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \
222"\
223--- diff1/-
224+++ diff2/-
225@@ -1 +1 @@
226-qwe
227+rty
228--- .///diff1/-
229+++ diff2////-
230@@ -1 +1 @@
231-qwe
232+rty
233" \
234 "" ""
235SKIP=
236
237# clean up
238rm -rf diff1 diff2
239
240exit $FAILCOUNT
Note: See TracBrowser for help on using the repository browser.