diff options
author | Ron Yorston <rmy@pobox.com> | 2024-12-30 14:45:15 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2024-12-30 14:45:15 +0000 |
commit | 370ce52cca8e7e8a341d5e238a79fd67f6048bb6 (patch) | |
tree | 48c78d906a4467bb618946d96574a5bc21cacfba /testsuite | |
parent | dc3ee8e0523a4f651f3012ae1f5a181548187709 (diff) | |
parent | 14f57f5357cb674b88e7cdaff6267bf9d84c6b80 (diff) | |
download | busybox-w32-merge.tar.gz busybox-w32-merge.tar.bz2 busybox-w32-merge.zip |
Merge branch 'busybox' into mergemerge
Diffstat (limited to 'testsuite')
-rwxr-xr-x | testsuite/cut.tests | 140 | ||||
-rwxr-xr-x | testsuite/hexdump.tests | 6 |
2 files changed, 134 insertions, 12 deletions
diff --git a/testsuite/cut.tests b/testsuite/cut.tests index a31f41f7f..21cfea809 100755 --- a/testsuite/cut.tests +++ b/testsuite/cut.tests | |||
@@ -23,14 +23,30 @@ the quick brown fox jumps over the lazy dog | |||
23 | 23 | ||
24 | testing "cut -b a,a,a" "cut -b 3,3,3 input" "e\np\ne\n" "$abc" "" | 24 | testing "cut -b a,a,a" "cut -b 3,3,3 input" "e\np\ne\n" "$abc" "" |
25 | 25 | ||
26 | testing "cut -b overlaps" "cut -b 1-3,2-5,7-9,9-10 input" \ | 26 | testing "cut -b overlaps" \ |
27 | "one:to:th\nalphabeta\nthe qick \n" "$abc" "" | 27 | "cut -b 1-3,2-5,7-9,9-10 input" \ |
28 | testing "-b encapsulated" "cut -b 3-8,4-6 input" "e:two:\npha:be\ne quic\n" \ | 28 | "\ |
29 | "$abc" "" | 29 | one:to:th |
30 | # --output-delimiter not implemnted (yet?) | 30 | alphabeta |
31 | #testing "cut -bO overlaps" \ | 31 | the qick \n" \ |
32 | # "cut --output-delimiter ' ' -b 1-3,2-5,7-9,9-10 input" \ | 32 | "$abc" "" |
33 | # "one:t o:th\nalpha beta\nthe q ick \n" "$abc" "" | 33 | testing "-b encapsulated" \ |
34 | "cut -b 3-8,4-6 input" \ | ||
35 | "\ | ||
36 | e:two: | ||
37 | pha:be | ||
38 | e quic\n" \ | ||
39 | "$abc" "" | ||
40 | optional LONG_OPTS | ||
41 | testing "cut -b --output-delimiter overlaps" \ | ||
42 | "cut --output-delimiter='^' -b 1-3,2-5,7-9,9-10 input" \ | ||
43 | "\ | ||
44 | one:t^o:th | ||
45 | alpha^beta | ||
46 | the q^ick \n" \ | ||
47 | "$abc" "" | ||
48 | SKIP= | ||
49 | |||
34 | testing "cut high-low error" "cut -b 8-3 input 2>/dev/null || echo err" "err\n" \ | 50 | testing "cut high-low error" "cut -b 8-3 input 2>/dev/null || echo err" "err\n" \ |
35 | "$abc" "" | 51 | "$abc" "" |
36 | 52 | ||
@@ -68,10 +84,27 @@ testing "cut with -d -f( ) -s" "cut -d' ' -f3 -s input && echo yes" "yes\n" "$in | |||
68 | testing "cut with -d -f(a) -s" "cut -da -f3 -s input" "n\nsium:Jim\n\ncion:Ed\n" "$input" "" | 84 | testing "cut with -d -f(a) -s" "cut -da -f3 -s input" "n\nsium:Jim\n\ncion:Ed\n" "$input" "" |
69 | testing "cut with -d -f(a) -s -n" "cut -da -f3 -s -n input" "n\nsium:Jim\n\ncion:Ed\n" "$input" "" | 85 | testing "cut with -d -f(a) -s -n" "cut -da -f3 -s -n input" "n\nsium:Jim\n\ncion:Ed\n" "$input" "" |
70 | 86 | ||
87 | input="\ | ||
88 | |||
89 | foo bar baz | ||
90 | |||
91 | bing bong boop | ||
92 | |||
93 | " | ||
94 | testing "cut with -d -s omits blank lines" "cut -d' ' -f2 -s input" "bar\nbong\n" "$input" "" | ||
95 | |||
71 | # substitute for awk | 96 | # substitute for awk |
72 | optional FEATURE_CUT_REGEX | 97 | optional FEATURE_CUT_REGEX |
73 | testing "cut -DF" "cut -DF 2,7,5" \ | 98 | testing "cut -DF unordered" "cut -DF 2,7,5" \ |
74 | "said and your\nare\nis demand. supply\nforecast :\nyou you better,\n\nEm: Took hate\n" "" \ | 99 | "\ |
100 | said and your | ||
101 | are | ||
102 | is demand. supply | ||
103 | forecast : | ||
104 | you you better, | ||
105 | |||
106 | Em: Took hate | ||
107 | " "" \ | ||
75 | "Bother, said Pooh. It's your husband, and he has a gun. | 108 | "Bother, said Pooh. It's your husband, and he has a gun. |
76 | Cheerios are donut seeds. | 109 | Cheerios are donut seeds. |
77 | Talk is cheap because supply exceeds demand. | 110 | Talk is cheap because supply exceeds demand. |
@@ -79,9 +112,92 @@ Weather forecast for tonight : dark. | |||
79 | Apple: you can buy better, but you can't pay more. | 112 | Apple: you can buy better, but you can't pay more. |
80 | Subcalifragilisticexpialidocious. | 113 | Subcalifragilisticexpialidocious. |
81 | Auntie Em: Hate you, hate Kansas. Took the dog. Dorothy." | 114 | Auntie Em: Hate you, hate Kansas. Took the dog. Dorothy." |
115 | |||
116 | # No delimiter found: print entire line regardless of -F RANGES | ||
117 | testing "cut -F1" "cut -d: -F1" \ | ||
118 | "the_only_field\n" "" \ | ||
119 | "the_only_field\n" | ||
120 | testing "cut -F2" "cut -d: -F2" \ | ||
121 | "the_only_field\n" "" \ | ||
122 | "the_only_field\n" | ||
123 | # No delimiter found and -s: skip entire line | ||
124 | testing "cut -sF1" "cut -d: -sF1" \ | ||
125 | "" "" \ | ||
126 | "the_only_field\n" | ||
127 | #^^^ the above is probably mishandled by toybox, it prints the line | ||
128 | testing "cut -sF2" "cut -d: -sF2" \ | ||
129 | "" "" \ | ||
130 | "the_only_field\n" | ||
131 | # -D disables special handling of lines with no delimiters, the line is treated as the 1st field | ||
132 | testing "cut -DF1" "cut -d: -DF1" \ | ||
133 | "the_only_field\n" "" \ | ||
134 | "the_only_field\n" | ||
135 | testing "cut -DF2" "cut -d: -DF2" \ | ||
136 | "\n" "" \ | ||
137 | "the_only_field\n" | ||
138 | |||
139 | optional FEATURE_CUT_REGEX LONG_OPTS | ||
140 | testing "cut -F preserves intermediate delimiters" \ | ||
141 | "cut --output-delimiter=: -F2,4-6,7" \ | ||
142 | "2:4 5 6:7\n" \ | ||
143 | "" "1 2 3 4\t\t5 6 7 8\n" | ||
144 | SKIP= | ||
145 | |||
146 | optional LONG_OPTS | ||
147 | testing "cut -f does not preserve intermediate delimiters" \ | ||
148 | "cut --output-delimiter=: -d' ' -f2,4-6,7" \ | ||
149 | "2:4:5:6:7\n" \ | ||
150 | "" "1 2 3 4 5 6 7 8\n" | ||
151 | SKIP= | ||
152 | |||
153 | testing "cut empty field" "cut -d ':' -f 1-3" \ | ||
154 | "a::b\n" \ | ||
155 | "" "a::b\n" | ||
156 | testing "cut empty field 2" "cut -d ':' -f 3-5" \ | ||
157 | "b::c\n" \ | ||
158 | "" "a::b::c:d\n" | ||
159 | testing "cut non-existing field" "cut -d ':' -f1,3" \ | ||
160 | "1\n" \ | ||
161 | "" "1:\n" | ||
162 | |||
163 | # cut -d$'\n' has a special meaning: "select input lines". | ||
164 | # I didn't find any documentation for this feature. | ||
165 | testing "cut -dNEWLINE" \ | ||
166 | "cut -d' | ||
167 | ' -f4,2,6-8" \ | ||
168 | "2\n4\n6\n7\n" \ | ||
169 | "" "1\n2\n3\n4\n5\n6\n7" | ||
170 | |||
171 | optional LONG_OPTS | ||
172 | testing "cut -dNEWLINE --output-delimiter" \ | ||
173 | "cut -d' | ||
174 | ' --output-delimiter=@@ -f4,2,6-8" \ | ||
175 | "2@@4@@6@@7\n" \ | ||
176 | "" "1\n2\n3\n4\n5\n6\n7" | ||
177 | |||
178 | testing "cut -dNEWLINE --output-delimiter 2" \ | ||
179 | "cut -d' | ||
180 | ' --output-delimiter=@@ -f4,2,6-8" \ | ||
181 | "2@@4@@6@@7\n" \ | ||
182 | "" "1\n2\n3\n4\n5\n6\n7\n" | ||
183 | |||
184 | testing "cut -dNEWLINE --output-delimiter EMPTY_INPUT" \ | ||
185 | "cut -d' | ||
186 | ' --output-delimiter=@@ -f4,2,6-8" \ | ||
187 | "" \ | ||
188 | "" "" | ||
82 | SKIP= | 189 | SKIP= |
83 | 190 | ||
84 | testing "cut empty field" "cut -d ':' -f 1-3" "a::b\n" "" "a::b\n" | 191 | # This seems to work as if delimiter is never found. |
85 | testing "cut empty field 2" "cut -d ':' -f 3-5" "b::c\n" "" "a::b::c:d\n" | 192 | # We test here that -d '' does *not* operate as if there was no -d |
193 | # and delimiter has defaulted to TAB: | ||
194 | testing "cut -d EMPTY" \ | ||
195 | "cut -d '' -f2-" \ | ||
196 | "1 2\t3 4 5\n" \ | ||
197 | "" "1 2\t3 4 5\n" | ||
198 | testing "cut -d EMPTY -s" \ | ||
199 | "cut -d '' -f2- -s" \ | ||
200 | "" \ | ||
201 | "" "1 2\t3 4 5\n" | ||
86 | 202 | ||
87 | exit $FAILCOUNT | 203 | exit $FAILCOUNT |
diff --git a/testsuite/hexdump.tests b/testsuite/hexdump.tests index be0379cfc..517ec508b 100755 --- a/testsuite/hexdump.tests +++ b/testsuite/hexdump.tests | |||
@@ -82,4 +82,10 @@ testing "hexdump -e /2 %d" \ | |||
82 | "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\ | 82 | "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\ |
83 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\ | 83 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\ |
84 | 84 | ||
85 | testing "hexdump -n4 -e '\"%u\"'" \ | ||
86 | "hexdump -n4 -e '\"%u\"'" \ | ||
87 | "12345678" \ | ||
88 | "" \ | ||
89 | "\x4e\x61\xbc\x00AAAA" | ||
90 | |||
85 | exit $FAILCOUNT | 91 | exit $FAILCOUNT |