libsodium: Needed for Dnscrypto-proxy Release 1.3.0
[tomato.git] / release / src / router / busybox / testsuite / diff.tests
blob6de46483bb809d33aebc08031c46a96d10e14fa0
1 #!/bin/sh
2 # Copyright 2008 by Denys Vlasenko
3 # Licensed under GPLv2, see file LICENSE in this source tree.
5 . ./testing.sh
7 # testing "test name" "commands" "expected result" "file input" "stdin"
9 # diff outputs date/time in the header, which should not be analysed
10 # NB: sed has tab character in s command!
11 TRIM_TAB="sed 's/ .*//'"
13 testing "diff of stdin" \
14 "diff -u - input | $TRIM_TAB" \
16 --- -
17 +++ input
18 @@ -1 +1,3 @@
19 +qwe
20 asd
21 +zxc
22 " \
23 "qwe\nasd\nzxc\n" \
24 "asd\n"
26 testing "diff of stdin, no newline in the file" \
27 "diff -u - input | $TRIM_TAB" \
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"
40 # we also test that stdin is in fact NOT read
41 testing "diff of stdin, twice" \
42 'diff - -; echo $?; wc -c' \
43 "0\n5\n" \
44 "" \
45 "stdin"
47 testing "diff of empty file against nonempty one" \
48 "diff -u - input | $TRIM_TAB" \
50 --- -
51 +++ input
52 @@ -0,0 +1 @@
54 " \
55 "a\n" \
58 testing "diff -b treats EOF as whitespace" \
59 'diff -ub - input; echo $?' \
60 "0\n" \
61 "abc" \
62 "abc "
64 testing "diff -b treats all spaces as equal" \
65 'diff -ub - input; echo $?' \
66 "0\n" \
67 "a \t c\n" \
68 "a\t \tc\n"
70 testing "diff -B ignores changes whose lines are all blank" \
71 'diff -uB - input; echo $?' \
72 "0\n" \
73 "a\n" \
74 "\na\n\n"
76 testing "diff -B does not ignore changes whose lines are not all blank" \
77 "diff -uB - input | $TRIM_TAB" \
79 --- -
80 +++ input
81 @@ -1,3 +1 @@
86 " \
87 "a\n" \
88 "\nb\n\n"
90 testing "diff always takes context from old file" \
91 "diff -ub - input | $TRIM_TAB" \
93 --- -
94 +++ input
95 @@ -1 +1,3 @@
96 +abc
97 a c
98 +def
99 " \
100 "abc\na c\ndef\n" \
101 "a c\n"
103 # testing "test name" "commands" "expected result" "file input" "stdin"
105 # clean up
106 rm -rf diff1 diff2
108 mkdir diff1 diff2 diff2/subdir
109 echo qwe >diff1/-
110 echo asd >diff2/subdir/-
111 optional FEATURE_DIFF_DIR
112 testing "diff diff1 diff2/subdir" \
113 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
115 --- diff1/-
116 +++ diff2/subdir/-
117 @@ -1 +1 @@
118 -qwe
119 +asd
121 "" ""
122 SKIP=
124 # using directory structure from prev test...
125 optional FEATURE_DIFF_DIR
126 testing "diff dir dir2/file/-" \
127 "diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \
129 --- diff1/-
130 +++ diff2/subdir/-
131 @@ -1 +1 @@
132 -qwe
133 +asd
135 "" ""
136 SKIP=
138 # using directory structure from prev test...
139 mkdir diff1/test
140 mkfifo diff2/subdir/test
141 optional FEATURE_DIFF_DIR
142 testing "diff of dir and fifo" \
143 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
145 --- diff1/-
146 +++ diff2/subdir/-
147 @@ -1 +1 @@
148 -qwe
149 +asd
150 Only in diff2/subdir: test
152 "" ""
153 SKIP=
155 # using directory structure from prev test...
156 rmdir diff1/test
157 echo >diff1/test
158 optional FEATURE_DIFF_DIR
159 testing "diff of file and fifo" \
160 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
162 --- diff1/-
163 +++ diff2/subdir/-
164 @@ -1 +1 @@
165 -qwe
166 +asd
167 File diff2/subdir/test is not a regular file or directory and was skipped
169 "" ""
170 SKIP=
172 # using directory structure from prev test...
173 mkfifo diff1/test2
174 optional FEATURE_DIFF_DIR
175 testing "diff -rN does not read non-regular files" \
176 "diff -urN diff1 diff2/subdir | $TRIM_TAB" \
178 --- diff1/-
179 +++ diff2/subdir/-
180 @@ -1 +1 @@
181 -qwe
182 +asd
183 File diff2/subdir/test is not a regular file or directory and was skipped
184 File diff1/test2 is not a regular file or directory and was skipped
186 "" ""
187 SKIP=
189 # clean up
190 rm -rf diff1 diff2
192 # NOT using directory structure from prev test...
193 mkdir diff1 diff2
194 echo qwe >diff1/-
195 echo rty >diff2/-
196 optional FEATURE_DIFF_DIR
197 testing "diff diff1 diff2/" \
198 "diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \
200 --- diff1/-
201 +++ diff2/-
202 @@ -1 +1 @@
203 -qwe
204 +rty
205 --- .///diff1/-
206 +++ diff2////-
207 @@ -1 +1 @@
208 -qwe
209 +rty
211 "" ""
212 SKIP=
214 # clean up
215 rm -rf diff1 diff2
217 exit $FAILCOUNT