1153838Sdfr#!/bin/sh 2153838Sdfr 3153838Sdfr# $FreeBSD: releng/10.2/tools/test/sort/bigtest/kcmd 235274 2012-05-11 16:04:55Z gabor $ 4153838Sdfr 5153838Sdfrrm -rf siks 6153838Sdfrmkdir -p siks 7153838Sdfr 8153838Sdfrexport GNUSORT_NUMERIC_COMPATIBILITY=x 9153838Sdfr 10153838SdfrBSDSORT=../sort 11153838SdfrGNUSORT=~/coreutils/bin/sort 12153838Sdfr#GNUSORT=sort 13153838Sdfr 14153838SdfrFILECMP=cmp 15153838Sdfr 16153838SdfrINPUT_FILE=si 17153838Sdfr 18153838Sdfrrm -rf test.log 19153838Sdfr 20153838Sdfr#ru_RU.ISO-8859-5 en_US.ISO8859-15 zh_HK.Big5HKSCS 21153838Sdfr# 22153838Sdfr# ru KOI-8 is an "irregular" locale with non-trivial ordering. 23153838Sdfr# zh* is a 2-bytes locale 24153838Sdfr 25153838Sdfrfor lang in ru_RU.KOI8-R C ru_RU.ISO-8859-5 en_US.ISO8859-15 zh_HK.Big5HKSCS 26153838Sdfrdo 27153838Sdfr 28153838Sdfr export LANG=${lang} 29153838Sdfr 30153838Sdfr for KEYS in -srh -sfrudb -Vs -sM -siz 31153838Sdfr do 32153838Sdfr 33153838Sdfr echo ${LANG} ${KEYS} 34153838Sdfr 35153838Sdfr ${BSDSORT} ${KEYS} ${INPUT_FILE} -o siks/sik1 36153838Sdfr ER=$? 37153838Sdfr if ! [ ${ER} -eq 0 ] ; then 38153838Sdfr echo ${LANG} ${KEYS} crash >> test.log 39153838Sdfr exit 40153838Sdfr fi 41153838Sdfr ${GNUSORT} ${KEYS} ${INPUT_FILE} -o siks/sik2 42153838Sdfr if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then 43153838Sdfr echo ${LANG} ${KEYS} error >> test.log 44153838Sdfr fi 45153838Sdfr ${BSDSORT} -c ${KEYS} siks/sik1 46153838Sdfr ER=$? 47153838Sdfr if ! [ ${ER} -eq 0 ] ; then 48153838Sdfr echo ${LANG} ${KEYS} -c error >> test.log 49153838Sdfr fi 50153838Sdfr rm siks/res.0.0 51153838Sdfr 52178828Sdfr ${BSDSORT} ${KEYS} -t " " ${INPUT_FILE} -o siks/sik1 53178828Sdfr ER=$? 54178828Sdfr if ! [ ${ER} -eq 0 ] ; then 55178828Sdfr echo ${LANG} ${KEYS} -t " " crash >> test.log 56178828Sdfr exit 57178828Sdfr fi 58178828Sdfr ${GNUSORT} ${KEYS} -t " " ${INPUT_FILE} -o siks/sik2 59178828Sdfr if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then 60153838Sdfr echo ${LANG} ${KEYS} error -t " " >> test.log 61153838Sdfr fi 62153838Sdfr ${BSDSORT} -c -t " " ${KEYS} siks/sik1 63153838Sdfr ER=$? 64153838Sdfr if ! [ ${ER} -eq 0 ] ; then 65153838Sdfr echo $? ${LANG} ${KEYS} -t " " -c error >> test.log 66153838Sdfr fi 67153838Sdfr rm siks/res.0.0 68153838Sdfr 69153838Sdfr ${BSDSORT} ${KEYS} -t "|" ${INPUT_FILE} -o siks/sik1 70153838Sdfr ER=$? 71153838Sdfr if ! [ ${ER} -eq 0 ] ; then 72153838Sdfr echo ${LANG} ${KEYS} -t "|" crash >> test.log 73153838Sdfr exit 74153838Sdfr fi 75153838Sdfr ${GNUSORT} ${KEYS} -t "|" ${INPUT_FILE} -o siks/sik2 76153838Sdfr if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then 77153838Sdfr echo ${LANG} ${KEYS} error -t "|" >> test.log 78153838Sdfr fi 79178828Sdfr ${BSDSORT} -c -t "|" ${KEYS} siks/sik1 80178828Sdfr ER=$? 81153838Sdfr if ! [ ${ER} -eq 0 ] ; then 82178828Sdfr echo ${LANG} ${KEYS} -c -t "|" error >> test.log 83153838Sdfr fi 84178828Sdfr rm siks/res.0.0 85178828Sdfr 86178828Sdfr ${BSDSORT} ${KEYS} -t '\0' ${INPUT_FILE} -o siks/sik1 87178828Sdfr ER=$? 88178828Sdfr if ! [ ${ER} -eq 0 ] ; then 89178828Sdfr echo ${LANG} ${KEYS} -t 0 crash >> test.log 90178828Sdfr exit 91178828Sdfr fi 92153838Sdfr ${GNUSORT} ${KEYS} -t '\0' ${INPUT_FILE} -o siks/sik2 93153838Sdfr if ! ${FILECMP} siks/sik1 siks/sik2 >siks/res.0.0 2>&1 ; then 94153838Sdfr echo ${LANG} ${KEYS} error -t '\0' >> test.log 95153838Sdfr fi 96153838Sdfr ${BSDSORT} -c -t '\0' ${KEYS} siks/sik1 97 ER=$? 98 if ! [ ${ER} -eq 0 ] ; then 99 echo ${LANG} ${KEYS} -c -t '\0' error >> test.log 100 fi 101 rm siks/res.0.0 102 103 for f1 in 1 2 3 4 5 6 7 8 9 104 do 105 for c1 in 1 2 3 4 5 10 15 20 25 30 106 do 107 echo ${LANG} ${KEYS} ${f1} ${c1} 108 109 ${BSDSORT} ${KEYS} +${f1}.${c1} ${INPUT_FILE} -o siks/sik1 110 ER=$? 111 if ! [ ${ER} -eq 0 ] ; then 112 echo ${LANG} ${KEYS} +${f1}.${c1} crash +- >> test.log 113 exit 114 fi 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 118 fi 119 ${BSDSORT} -c ${KEYS} +${f1}.${c1} siks/sik1 120 ER=$? 121 if ! [ ${ER} -eq 0 ] ; then 122 echo ${LANG} ${KEYS} +${f1}.${c1} -c error +- >> test.log 123 fi 124 rm siks/res.${f1}.${c1} 125 126 ${BSDSORT} ${KEYS} -k${f1}.${c1} ${INPUT_FILE} -o siks/sik1 127 ER=$? 128 if ! [ ${ER} -eq 0 ] ; then 129 echo ${LANG} ${KEYS} -k${f1}.${c1} crash >> test.log 130 exit 131 fi 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 135 fi 136 ${BSDSORT} -c ${KEYS} -k${f1}.${c1} siks/sik1 137 ER=$? 138 if ! [ ${ER} -eq 0 ] ; then 139 echo ${LANG} ${KEYS} -k${f1}.${c1} -c error >> test.log 140 fi 141 rm siks/res.${f1}.${c1} 142 143 ${BSDSORT} ${KEYS} -k${f1}.${c1}b ${INPUT_FILE} -o siks/sik1 144 ER=$? 145 if ! [ ${ER} -eq 0 ] ; then 146 echo ${LANG} ${KEYS} -k${f1}.${c1}b crash >> test.log 147 exit 148 fi 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 152 fi 153 ${BSDSORT} -c ${KEYS} -k${f1}.${c1}b siks/sik1 154 ER=$? 155 if ! [ ${ER} -eq 0 ] ; then 156 echo ${LANG} ${KEYS} -k${f1}.${c1}b -c error >> test.log 157 fi 158 rm siks/res.${f1}.${c1} 159 160 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1} ${INPUT_FILE} -o siks/sik1 161 ER=$? 162 if ! [ ${ER} -eq 0 ] ; then 163 echo ${LANG} ${KEYS} -t -k${f1}.${c1} crash >> test.log 164 exit 165 fi 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 169 fi 170 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1} siks/sik1 171 ER=$? 172 if ! [ ${ER} -eq 0 ] ; then 173 echo ${LANG} ${KEYS} -k${f1}.${c1} -t " " -c error >> test.log 174 fi 175 rm siks/res.${f1}.${c1} 176 177 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1}n ${INPUT_FILE} -o siks/sik1 178 ER=$? 179 if ! [ ${ER} -eq 0 ] ; then 180 echo ${LANG} ${KEYS} -k${f1}.${c1}n crash >> test.log 181 exit 182 fi 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 186 fi 187 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1}n siks/sik1 188 ER=$? 189 if ! [ ${ER} -eq 0 ] ; then 190 echo ${LANG} ${KEYS} -k${f1}.${c1} -c -t " " n error >> test.log 191 fi 192 rm siks/res.${f1}.${c1} 193 194 ${BSDSORT} ${KEYS} -t "|" -k${f1}.${c1} ${INPUT_FILE} -o siks/sik1 195 ER=$? 196 if ! [ ${ER} -eq 0 ] ; then 197 echo ${LANG} ${KEYS} -t "|" -k${f1}.${c1} crash >> test.log 198 exit 199 fi 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 203 fi 204 ${BSDSORT} -c -t "|" ${KEYS} -k${f1}.${c1} siks/sik1 205 ER=$? 206 if ! [ ${ER} -eq 0 ] ; then 207 echo ${LANG} ${KEYS} -k${f1}.${c1} -c -t "|" error >> test.log 208 fi 209 rm siks/res.${f1}.${c1} 210 211 for f2 in 1 2 3 4 5 6 7 8 9 10 212 do 213 for c2 in 0 1 2 3 4 5 10 15 20 25 30 214 do 215 echo ${LANG} ${KEYS} ${f1} ${c1} ${f2} ${c2} 216 217 ${BSDSORT} ${KEYS} +${f1}.${c1} -${f2}.${c2} ${INPUT_FILE} -o siks/sik1 218 ER=$? 219 if ! [ ${ER} -eq 0 ] ; then 220 echo ${LANG} ${KEYS} +${f1}.${c1} -${f2}.${c2} crash >> test.log 221 exit 222 fi 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 226 fi 227 ${BSDSORT} -c ${KEYS} +${f1}.${c1} -${f2}.${c2} siks/sik1 228 ER=$? 229 if ! [ ${ER} -eq 0 ] ; then 230 echo ${LANG} ${KEYS} +${f1}.${c1} -${f2}.${c2} -c error +- >> test.log 231 fi 232 rm siks/res.${f1}.${c1}.${f2}.${c2} 233 234 ${BSDSORT} ${KEYS} -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik1 235 ER=$? 236 if ! [ ${ER} -eq 0 ] ; then 237 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} crash >> test.log 238 exit 239 fi 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 243 fi 244 ${BSDSORT} -c ${KEYS} -k${f1}.${c1},${f2}.${c2} siks/sik1 245 ER=$? 246 if ! [ ${ER} -eq 0 ] ; then 247 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c error >> test.log 248 fi 249 rm siks/res.${f1}.${c1}.${f2}.${c2} 250 251 ${BSDSORT} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} ${INPUT_FILE} -o siks/sik1 252 ER=$? 253 if ! [ ${ER} -eq 0 ] ; then 254 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} crash >> test.log 255 exit 256 fi 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 260 fi 261 ${BSDSORT} -c ${KEYS} -k${f1}.${c1}b,${f2}.${c2} siks/sik1 262 ER=$? 263 if ! [ ${ER} -eq 0 ] ; then 264 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -c error >> test.log 265 fi 266 rm siks/res.${f1}.${c1}.${f2}.${c2} 267 268 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik1 269 ER=$? 270 if ! [ ${ER} -eq 0 ] ; then 271 echo ${LANG} ${KEYS} -t " " -k${f1}.${c1},${f2}.${c2} crash >> test.log 272 exit 273 fi 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 277 fi 278 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1},${f2}.${c2} siks/sik1 279 ER=$? 280 if ! [ ${ER} -eq 0 ] ; then 281 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t " " error >> test.log 282 fi 283 rm siks/res.${f1}.${c1}.${f2}.${c2} 284 285 ${BSDSORT} ${KEYS} -t " " -k${f1}.${c1}n,${f2}.${c2} ${INPUT_FILE} -o siks/sik1 286 ER=$? 287 if ! [ ${ER} -eq 0 ] ; then 288 echo ${LANG} ${KEYS} -t " " -k${f1}.${c1}n,${f2}.${c2} crash >> test.log 289 exit 290 fi 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 294 fi 295 ${BSDSORT} -c -t " " ${KEYS} -k${f1}.${c1}n,${f2}.${c2} siks/sik1 296 ER=$? 297 if ! [ ${ER} -eq 0 ] ; then 298 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t " " n error >> test.log 299 fi 300 rm siks/res.${f1}.${c1}.${f2}.${c2} 301 302 ${BSDSORT} ${KEYS} -t '\0' -k${f1}.${c1}n,${f2}.${c2} ${INPUT_FILE} -o siks/sik1 303 ER=$? 304 if ! [ ${ER} -eq 0 ] ; then 305 echo ${LANG} ${KEYS} -t '\0' -k${f1}.${c1}n,${f2}.${c2} crash >> test.log 306 exit 307 fi 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 311 fi 312 ${BSDSORT} -c -t '\0' ${KEYS} -k${f1}.${c1}n,${f2}.${c2} siks/sik1 313 ER=$? 314 if ! [ ${ER} -eq 0 ] ; then 315 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t '\0' n error >> test.log 316 fi 317 rm siks/res.${f1}.${c1}.${f2}.${c2} 318 319 ${BSDSORT} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} ${INPUT_FILE} -o siks/sik1 320 ER=$? 321 if ! [ ${ER} -eq 0 ] ; then 322 echo ${LANG} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} crash >> test.log 323 exit 324 fi 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 328 fi 329 ${BSDSORT} -c -t "|" ${KEYS} -k${f1}.${c1},${f2}.${c2} siks/sik1 330 ER=$? 331 if ! [ ${ER} -eq 0 ] ; then 332 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t "|" error >> test.log 333 fi 334 rm siks/res.${f1}.${c1}.${f2}.${c2} 335 336 ${BSDSORT} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} ${INPUT_FILE} -o siks/sik1 337 ER=$? 338 if ! [ ${ER} -eq 0 ] ; then 339 echo ${LANG} ${KEYS} -t "|" -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} crash >> test.log 340 exit 341 fi 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 345 fi 346 ${BSDSORT} -c -t "|" ${KEYS} -k${f1}.${c1},${f2}.${c2} -k${f2}.${c1},${f1}.${c2} siks/sik1 347 ER=$? 348 if ! [ ${ER} -eq 0 ] ; then 349 echo ${LANG} ${KEYS} -k${f1}.${c1},${f2}.${c2} -c -t "|" 2k error >> test.log 350 fi 351 rm siks/res.${f1}.${c1}.${f2}.${c2} 352 353 ${BSDSORT} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} ${INPUT_FILE} -o siks/sik1 354 ER=$? 355 if ! [ ${ER} -eq 0 ] ; then 356 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} crash >> test.log 357 exit 358 fi 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 362 fi 363 ${BSDSORT} -c ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -k${f2}.${c1},${f1}.${c2} siks/sik1 364 ER=$? 365 if ! [ ${ER} -eq 0 ] ; then 366 echo ${LANG} ${KEYS} -k${f1}.${c1}b,${f2}.${c2} -c 2k error >> test.log 367 fi 368 rm siks/res.${f1}.${c1}.${f2}.${c2} 369 370 done 371 done 372 done 373 done 374 done 375done 376 377