source: MondoRescue/branches/3.2/mindi-busybox/testsuite/diff.tests@ 3232

Last change on this file since 3232 was 2725, checked in by Bruno Cornec, 13 years ago
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
  • Property svn:executable set to *
File size: 3.6 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 nonempty one" \
48 "diff -u - input | $TRIM_TAB" \
49"\
50--- -
51+++ input
52@@ -0,0 +1 @@
53+a
54" \
55 "a\n" \
56 ""
57
58testing "diff -b treats EOF as whitespace" \
59 'diff -ub - input; echo $?' \
60 "0\n" \
61 "abc" \
62 "abc "
63
64testing "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"
69
70testing "diff -B ignores changes whose lines are all blank" \
71 'diff -uB - input; echo $?' \
72 "0\n" \
73 "a\n" \
74 "\na\n\n"
75
76testing "diff -B does not ignore changes whose lines are not all blank" \
77 "diff -uB - input | $TRIM_TAB" \
78"\
79--- -
80+++ input
81@@ -1,3 +1 @@
82-
83-b
84-
85+a
86" \
87 "a\n" \
88 "\nb\n\n"
89
90testing "diff always takes context from old file" \
91 "diff -ub - input | $TRIM_TAB" \
92"\
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"
102
103# testing "test name" "commands" "expected result" "file input" "stdin"
104
105# clean up
106rm -rf diff1 diff2
107
108mkdir diff1 diff2 diff2/subdir
109echo qwe >diff1/-
110echo asd >diff2/subdir/-
111optional FEATURE_DIFF_DIR
112testing "diff diff1 diff2/subdir" \
113 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
114"\
115--- diff1/-
116+++ diff2/subdir/-
117@@ -1 +1 @@
118-qwe
119+asd
120" \
121 "" ""
122SKIP=
123
124# using directory structure from prev test...
125optional FEATURE_DIFF_DIR
126testing "diff dir dir2/file/-" \
127 "diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \
128"\
129--- diff1/-
130+++ diff2/subdir/-
131@@ -1 +1 @@
132-qwe
133+asd
134" \
135 "" ""
136SKIP=
137
138# using directory structure from prev test...
139mkdir diff1/test
140mkfifo diff2/subdir/test
141optional FEATURE_DIFF_DIR
142testing "diff of dir and fifo" \
143 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
144"\
145--- diff1/-
146+++ diff2/subdir/-
147@@ -1 +1 @@
148-qwe
149+asd
150Only in diff2/subdir: test
151" \
152 "" ""
153SKIP=
154
155# using directory structure from prev test...
156rmdir diff1/test
157echo >diff1/test
158optional FEATURE_DIFF_DIR
159testing "diff of file and fifo" \
160 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
161"\
162--- diff1/-
163+++ diff2/subdir/-
164@@ -1 +1 @@
165-qwe
166+asd
167File diff2/subdir/test is not a regular file or directory and was skipped
168" \
169 "" ""
170SKIP=
171
172# using directory structure from prev test...
173mkfifo diff1/test2
174optional FEATURE_DIFF_DIR
175testing "diff -rN does not read non-regular files" \
176 "diff -urN diff1 diff2/subdir | $TRIM_TAB" \
177"\
178--- diff1/-
179+++ diff2/subdir/-
180@@ -1 +1 @@
181-qwe
182+asd
183File diff2/subdir/test is not a regular file or directory and was skipped
184File diff1/test2 is not a regular file or directory and was skipped
185" \
186 "" ""
187SKIP=
188
189# clean up
190rm -rf diff1 diff2
191
192# NOT using directory structure from prev test...
193mkdir diff1 diff2
194echo qwe >diff1/-
195echo rty >diff2/-
196optional FEATURE_DIFF_DIR
197testing "diff diff1 diff2/" \
198 "diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \
199"\
200--- diff1/-
201+++ diff2/-
202@@ -1 +1 @@
203-qwe
204+rty
205--- .///diff1/-
206+++ diff2////-
207@@ -1 +1 @@
208-qwe
209+rty
210" \
211 "" ""
212SKIP=
213
214# clean up
215rm -rf diff1 diff2
216
217exit $FAILCOUNT
Note: See TracBrowser for help on using the repository browser.