Magellan Linux

Contents of /trunk/mkinitrd-magellan/busybox/testsuite/diff.tests

Parent Directory Parent Directory | Revision Log Revision Log


Revision 984 - (show annotations) (download)
Sun May 30 11:32:42 2010 UTC (13 years, 11 months ago) by niro
File size: 3115 byte(s)
-updated to busybox-1.16.1 and enabled blkid/uuid support in default config
1 #!/bin/sh
2 # Copyright 2008 by Denys Vlasenko
3 # Licensed under GPL v2, see file LICENSE for details.
4
5 . ./testing.sh
6
7 # testing "test name" "options" "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!
11 TRIM_TAB="sed 's/ .*//'"
12
13 testing "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
26 testing "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
41 testing "diff of stdin, twice" \
42 'diff - -; echo $?; wc -c' \
43 "0\n5\n" \
44 "" \
45 "stdin"
46
47 testing "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
58 testing "diff -b treats EOF as whitespace" \
59 'diff -ub - input; echo $?' \
60 "0\n" \
61 "abc" \
62 "abc "
63
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"
69
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"
75
76 testing "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
90 testing "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" "options" "expected result" "file input" "stdin"
104
105 rm -rf diff1 diff2
106 mkdir diff1 diff2 diff2/subdir
107 echo qwe >diff1/-
108 echo asd >diff2/subdir/-
109 testing "diff diff1 diff2/subdir" \
110 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
111 "\
112 --- diff1/-
113 +++ diff2/subdir/-
114 @@ -1 +1 @@
115 -qwe
116 +asd
117 " \
118 "" ""
119
120 # using directory structure from prev test...
121 testing "diff dir dir2/file/-" \
122 "diff -ur diff1 diff2/subdir/- | $TRIM_TAB" \
123 "\
124 --- diff1/-
125 +++ diff2/subdir/-
126 @@ -1 +1 @@
127 -qwe
128 +asd
129 " \
130 "" ""
131
132 # using directory structure from prev test...
133 mkdir diff1/test
134 mkfifo diff2/subdir/test
135 testing "diff of dir and fifo" \
136 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
137 "\
138 --- diff1/-
139 +++ diff2/subdir/-
140 @@ -1 +1 @@
141 -qwe
142 +asd
143 Only in diff2/subdir: test
144 " \
145 "" ""
146
147 # using directory structure from prev test...
148 rmdir diff1/test
149 echo >diff1/test
150 testing "diff of file and fifo" \
151 "diff -ur diff1 diff2/subdir | $TRIM_TAB" \
152 "\
153 --- diff1/-
154 +++ diff2/subdir/-
155 @@ -1 +1 @@
156 -qwe
157 +asd
158 File diff2/subdir/test is not a regular file or directory and was skipped
159 " \
160 "" ""
161
162 # using directory structure from prev test...
163 mkfifo diff1/test2
164 testing "diff -rN does not read non-regular files" \
165 "diff -urN diff1 diff2/subdir | $TRIM_TAB" \
166 "\
167 --- diff1/-
168 +++ diff2/subdir/-
169 @@ -1 +1 @@
170 -qwe
171 +asd
172 File diff2/subdir/test is not a regular file or directory and was skipped
173 File diff1/test2 is not a regular file or directory and was skipped
174 " \
175 "" ""
176
177 # clean up
178 rm -rf diff1 diff2
179
180 exit $FAILCOUNT