8 export GNUSORT_NUMERIC_COMPATIBILITY=x
11 GNUSORT=~/coreutils/bin/sort
20 #ru_RU.ISO-8859-5 en_US.ISO8859-15 zh_HK.Big5HKSCS
22 # ru KOI-8 is an "irregular" locale with non-trivial ordering.
23 # zh* is a 2-bytes locale
25 for lang in ru_RU.KOI8-R C ru_RU.ISO-8859-5 en_US.ISO8859-15 zh_HK.Big5HKSCS
30 for KEYS in -srh -sfrudb -Vs -sM -siz
35 ${BSDSORT} ${KEYS} ${INPUT_FILE} -o siks/sik1
37 if ! [ ${ER} -eq 0 ] ; then
38 echo ${LANG} ${KEYS} crash >> test.log
41 ${GNUSORT} ${KEYS} ${INPUT_FILE} -o siks/sik2
42 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then
43 echo ${LANG} ${KEYS} error >> test.log
45 ${BSDSORT} -c ${KEYS} siks/sik1
47 if ! [ ${ER} -eq 0 ] ; then
48 echo ${LANG} ${KEYS} -c error >> test.log
52 ${BSDSORT} ${KEYS} -t " " ${INPUT_FILE} -o siks/sik1
54 if ! [ ${ER} -eq 0 ] ; then
55 echo ${LANG} ${KEYS} -t " " crash >> test.log
58 ${GNUSORT} ${KEYS} -t " " ${INPUT_FILE} -o siks/sik2
59 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then
60 echo ${LANG} ${KEYS} error -t " " >> test.log
62 ${BSDSORT} -c -t " " ${KEYS} siks/sik1
64 if ! [ ${ER} -eq 0 ] ; then
65 echo $? ${LANG} ${KEYS} -t " " -c error >> test.log
69 ${BSDSORT} ${KEYS} -t "|" ${INPUT_FILE} -o siks/sik1
71 if ! [ ${ER} -eq 0 ] ; then
72 echo ${LANG} ${KEYS} -t "|" crash >> test.log
75 ${GNUSORT} ${KEYS} -t "|" ${INPUT_FILE} -o siks/sik2
76 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then
77 echo ${LANG} ${KEYS} error -t "|" >> test.log
79 ${BSDSORT} -c -t "|" ${KEYS} siks/sik1
81 if ! [ ${ER} -eq 0 ] ; then
82 echo ${LANG} ${KEYS} -c -t "|" error >> test.log
86 ${BSDSORT} ${KEYS} -t '\0' ${INPUT_FILE} -o siks/sik1
88 if ! [ ${ER} -eq 0 ] ; then
89 echo ${LANG} ${KEYS} -t 0 crash >> test.log
92 ${GNUSORT} ${KEYS} -t '\0' ${INPUT_FILE} -o siks/sik2
93 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then
94 echo ${LANG} ${KEYS} error -t '\0' >> test.log
96 ${BSDSORT} -c -t '\0' ${KEYS} siks/sik1
98 if ! [ ${ER} -eq 0 ] ; then
99 echo ${LANG} ${KEYS} -c -t '\0' error >> test.log
103 for f1 in 1 2 3 4 5 6 7 8 9
105 for c1 in 1 2 3 4 5 10 15 20 25 30
107 echo ${LANG} ${KEYS} ${f1} ${c1}
109 ${BSDSORT} ${KEYS} +${f1}.${c1} ${INPUT_FILE} -o siks/sik1
111 if ! [ ${ER} -eq 0 ] ; then
112 echo ${LANG} ${KEYS} +${f1}.${c1} crash +- >> test.log
115 ${GNUSORT} ${KEYS} +${f1}.${c1} ${INPUT_FILE} -o siks/sik2
116 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1} 2>&1 ; then
117 echo ${LANG} ${KEYS} +${f1}.${c1} error +- >> test.log
119 ${BSDSORT} -c ${KEYS} +${f1}.${c1} siks/sik1
121 if ! [ ${ER} -eq 0 ] ; then
122 echo ${LANG} ${KEYS} +${f1}.${c1} -c error +- >> test.log
124 rm siks/res.${f1}.${c1}
126 ${BSDSORT} ${KEYS} -k${f1}.${c1} ${INPUT_FILE} -o siks/sik1
128 if ! [ ${ER} -eq 0 ] ; then
129 echo ${LANG} ${KEYS} -k${f1}.${c1} crash >> test.log
132 ${GNUSORT} ${KEYS} -k${f1}.${c1} ${INPUT_FILE} -o siks/sik2
133 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1} 2>&1 ; then
134 echo ${LANG} ${KEYS} -k${f1}.${c1} error >> test.log
136 ${BSDSORT} -c ${KEYS} -k${f1}.${c1} siks/sik1
138 if ! [ ${ER} -eq 0 ] ; then
139 echo ${LANG} ${KEYS} -k${f1}.${c1} -c error >> test.log
141 rm siks/res.${f1}.${c1}
143 ${BSDSORT} ${KEYS} -k${f1}.${c1}b ${INPUT_FILE} -o siks/sik1
145 if ! [ ${ER} -eq 0 ] ; then
146 echo ${LANG} ${KEYS} -k${f1}.${c1}b crash >> test.log
149 ${GNUSORT} ${KEYS} -k${f1}.${c1}b ${INPUT_FILE} -o siks/sik2
150 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1} 2>&1 ; then
151 echo ${LANG} ${KEYS} -k${f1}.${c1}b error >> test.log
153 ${BSDSORT} -c ${KEYS} -k${f1}.${c1}b siks/sik1
155 if ! [ ${ER} -eq 0 ] ; then
156 echo ${LANG} ${KEYS} -k${f1}.${c1}b -c error >> test.log
158 rm siks/res.${f1}.${c1}
160 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1} ${INPUT_FILE} -o siks/sik1
162 if ! [ ${ER} -eq 0 ] ; then
163 echo ${LANG} ${KEYS} -t -k${f1}.${c1} crash >> test.log
166 ${GNUSORT} ${KEYS} -t " " -k${f1}.${c1} ${INPUT_FILE} -o siks/sik2
167 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1} 2>&1 ; then
168 echo ${LANG} ${KEYS} -k${f1}.${c1} error -t " " >> test.log
170 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1} siks/sik1
172 if ! [ ${ER} -eq 0 ] ; then
173 echo ${LANG} ${KEYS} -k${f1}.${c1} -t " " -c error >> test.log
175 rm siks/res.${f1}.${c1}
177 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1}n ${INPUT_FILE} -o siks/sik1
179 if ! [ ${ER} -eq 0 ] ; then
180 echo ${LANG} ${KEYS} -k${f1}.${c1}n crash >> test.log
183 ${GNUSORT} ${KEYS} -t " " -k${f1}.${c1}n ${INPUT_FILE} -o siks/sik2
184 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1} 2>&1 ; then
185 echo ${LANG} ${KEYS} -k${f1}.${c1} error -t " " n >> test.log
187 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1}n siks/sik1
189 if ! [ ${ER} -eq 0 ] ; then
190 echo ${LANG} ${KEYS} -k${f1}.${c1} -c -t " " n error >> test.log
192 rm siks/res.${f1}.${c1}
194 ${BSDSORT} ${KEYS} -t "|" -k${f1}.${c1} ${INPUT_FILE} -o siks/sik1
196 if ! [ ${ER} -eq 0 ] ; then
197 echo ${LANG} ${KEYS} -t "|" -k${f1}.${c1} crash >> test.log
200 ${GNUSORT} ${KEYS} -t "|" -k${f1}.${c1} ${INPUT_FILE} -o siks/sik2
201 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1} 2>&1 ; then
202 echo ${LANG} ${KEYS} -k${f1}.${c1} error -t "|" >> test.log
204 ${BSDSORT} -c -t "|" ${KEYS} -k${f1}.${c1} siks/sik1
206 if ! [ ${ER} -eq 0 ] ; then
207 echo ${LANG} ${KEYS} -k${f1}.${c1} -c -t "|" error >> test.log
209 rm siks/res.${f1}.${c1}
211 for f2 in 1 2 3 4 5 6 7 8 9 10
213 for c2 in 0 1 2 3 4 5 10 15 20 25 30
215 echo ${LANG} ${KEYS} ${f1} ${c1} ${f2} ${c2}
217 ${BSDSORT} ${KEYS} +${f1}.${c1} -${f2}.${c2} ${INPUT_FILE} -o siks/sik1
219 if ! [ ${ER} -eq 0 ] ; then
220 echo ${LANG} ${KEYS} +${f1}.${c1} -${f2}.${c2} crash >> test.log
223 ${GNUSORT} ${KEYS} +${f1}.${c1} -${f2}.${c2} ${INPUT_FILE} -o siks/sik2
224 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
225 echo ${LANG} ${KEYS} +${f1}.${c1} -${f2}.${c2} error +- >> test.log
227 ${BSDSORT} -c ${KEYS} +${f1}.${c1} -${f2}.${c2} siks/sik1
229 if ! [ ${ER} -eq 0 ] ; then
230 echo ${LANG} ${KEYS} +${f1}.${c1} -${f2}.${c2} -c error +- >> test.log
232 rm siks/res.${f1}.${c1}.${f2}.${c2}
234 ${BSDSORT} ${KEYS} -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik1
236 if ! [ ${ER} -eq 0 ] ; then
237 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} crash >> test.log
240 ${GNUSORT} ${KEYS} -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik2
241 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
242 echo ${LANG} ${KEYS} -k${f1}.${c1}.${f2}.${c2} error >> test.log
244 ${BSDSORT} -c ${KEYS} -k${f1}.${c1},${f2}.${c2} siks/sik1
246 if ! [ ${ER} -eq 0 ] ; then
247 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c error >> test.log
249 rm siks/res.${f1}.${c1}.${f2}.${c2}
251 ${BSDSORT} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} ${INPUT_FILE} -o siks/sik1
253 if ! [ ${ER} -eq 0 ] ; then
254 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} crash >> test.log
257 ${GNUSORT} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} ${INPUT_FILE} -o siks/sik2
258 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
259 echo ${LANG} ${KEYS} -k${f1}.${c1}.b.${f2}.${c2} error >> test.log
261 ${BSDSORT} -c ${KEYS} -k${f1}.${c1}b,${f2}.${c2} siks/sik1
263 if ! [ ${ER} -eq 0 ] ; then
264 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -c error >> test.log
266 rm siks/res.${f1}.${c1}.${f2}.${c2}
268 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik1
270 if ! [ ${ER} -eq 0 ] ; then
271 echo ${LANG} ${KEYS} -t " " -k${f1}.${c1},${f2}.${c2} crash >> test.log
274 ${GNUSORT} ${KEYS} -t " " -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik2
275 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
276 echo ${LANG} ${KEYS} -k${f1}.${c1}.${f2}.${c2} error -t " " >> test.log
278 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1},${f2}.${c2} siks/sik1
280 if ! [ ${ER} -eq 0 ] ; then
281 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t " " error >> test.log
283 rm siks/res.${f1}.${c1}.${f2}.${c2}
285 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1}n,${f2}.${c2} ${INPUT_FILE} -o siks/sik1
287 if ! [ ${ER} -eq 0 ] ; then
288 echo ${LANG} ${KEYS} -t " " -k${f1}.${c1}n,${f2}.${c2} crash >> test.log
291 ${GNUSORT} ${KEYS} -t " " -k${f1}.${c1}n,${f2}.${c2} ${INPUT_FILE} -o siks/sik2
292 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
293 echo ${LANG} ${KEYS} -t " " -k${f1}.${c1}.${f2}.${c2} error n >> test.log
295 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1}n,${f2}.${c2} siks/sik1
297 if ! [ ${ER} -eq 0 ] ; then
298 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t " " n error >> test.log
300 rm siks/res.${f1}.${c1}.${f2}.${c2}
302 ${BSDSORT} ${KEYS} -t '\0' -k${f1}.${c1}n,${f2}.${c2} ${INPUT_FILE} -o siks/sik1
304 if ! [ ${ER} -eq 0 ] ; then
305 echo ${LANG} ${KEYS} -t '\0' -k${f1}.${c1}n,${f2}.${c2} crash >> test.log
308 ${GNUSORT} ${KEYS} -t '\0' -k${f1}.${c1}n,${f2}.${c2} ${INPUT_FILE} -o siks/sik2
309 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
310 echo ${LANG} ${KEYS} -k${f1}.${c1}.${f2}.${c2} error -t '\0' n >> test.log
312 ${BSDSORT} -c -t '\0' ${KEYS} -k${f1}.${c1}n,${f2}.${c2} siks/sik1
314 if ! [ ${ER} -eq 0 ] ; then
315 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t '\0' n error >> test.log
317 rm siks/res.${f1}.${c1}.${f2}.${c2}
319 ${BSDSORT} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik1
321 if ! [ ${ER} -eq 0 ] ; then
322 echo ${LANG} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} crash >> test.log
325 ${GNUSORT} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik2
326 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
327 echo ${LANG} ${KEYS} -k${f1}.${c1}.${f2}.${c2} error -t "|" >> test.log
329 ${BSDSORT} -c -t "|" ${KEYS} -k${f1}.${c1},${f2}.${c2} siks/sik1
331 if ! [ ${ER} -eq 0 ] ; then
332 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t "|" error >> test.log
334 rm siks/res.${f1}.${c1}.${f2}.${c2}
336 ${BSDSORT} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} ${INPUT_FILE} -o siks/sik1
338 if ! [ ${ER} -eq 0 ] ; then
339 echo ${LANG} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} crash >> test.log
342 ${GNUSORT} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} ${INPUT_FILE} -o siks/sik2
343 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
344 echo ${LANG} ${KEYS} -k${f1}.${c1}.${f2}.${c2} error -t "|" 2k >> test.log
346 ${BSDSORT} -c -t "|" ${KEYS} -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} siks/sik1
348 if ! [ ${ER} -eq 0 ] ; then
349 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t "|" 2k error >> test.log
351 rm siks/res.${f1}.${c1}.${f2}.${c2}
353 ${BSDSORT} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} ${INPUT_FILE} -o siks/sik1
355 if ! [ ${ER} -eq 0 ] ; then
356 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} crash >> test.log
359 ${GNUSORT} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} ${INPUT_FILE} -o siks/sik2
360 if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.${f1}.${c1}.${f2}.${c2} 2>&1 ; then
361 echo ${LANG} ${KEYS} -k${f1}.${c1}.b.${f2}.${c2} error 2k >> test.log
363 ${BSDSORT} -c ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} siks/sik1
365 if ! [ ${ER} -eq 0 ] ; then
366 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -c 2k error >> test.log
368 rm siks/res.${f1}.${c1}.${f2}.${c2}