# regression tests for the sort utility # 01..22 were generated from the gnu perl tests export LC_ALL=C TEST 01 'simple checks' EXEC -c f1 INPUT f1 $'A\nB\nC' EXEC f1 OUTPUT - $'A\nB\nC' EXEC -cu f1 INPUT f1 $'A\nB' OUTPUT - TEST 02 'two fields' EXEC -k1.1,1.0 f1 INPUT -n f1 EXEC -k1.1,1 f1 EXEC -k1,1 f1 EXEC -k1 f1 INPUT f1 $'B\nA' OUTPUT - $'A\nB' EXEC -k1,1 f1 EXEC -k1 -k2 f1 INPUT f1 $'A b\nA a' OUTPUT - $'A a\nA b' TEST 03 'numeric fields' EXEC -nc f1 INPUT f1 $'2\n11' EXEC -n f1 INPUT f1 $'11\n2' OUTPUT - $'2\n11' EXEC -k1n f1 EXEC -k1 f1 OUTPUT - $'11\n2' EXEC -k2 f1 INPUT f1 $'ignored B\nz-ig A' OUTPUT - $'z-ig A\nignored B' TEST 04 'two fields from three, option spacing' EXEC -k1,2 f1 INPUT f1 $'A B\nA A' OUTPUT - $'A A\nA B' EXEC -k 1,2 f1 EXEC -k1,2 f1 INPUT f1 $'A B A\nA A Z' OUTPUT - $'A A Z\nA B A' EXEC -k 1,2 f1 EXEC -k1 -k2 f1 EXEC -k 1 -k 2 f1 EXEC -k2,2 f1 EXEC -k 2,2 f1 EXEC -k2,2 f1 INPUT f1 $'A B Z\nA A A' OUTPUT - $'A A A\nA B Z' EXEC -k 2,2 f1 EXEC -k2,2 f1 INPUT f1 $'A B A\nA A Z' OUTPUT - $'A A Z\nA B A' EXEC -k 2,2 f1 TEST 05 'three on three' EXEC -k 2,3 f1 INPUT f1 $'9 a b\n7 a a' OUTPUT - $'7 a a\n9 a b' EXEC -k 2,3 f1 INPUT f1 $'a a b\nz a a' OUTPUT - $'z a a\na a b' EXEC -k 2,3 f1 INPUT f1 $'y k b\nz k a' OUTPUT - $'z k a\ny k b' EXEC +1 -3 f1 TEST 06 'floating point' EXEC -g f1 INPUT f1 $'1e2\n2e1' OUTPUT - $'2e1\n1e2' EXEC -n f1 OUTPUT - $'1e2\n2e1' EXEC -n f1 INPUT f1 $'2e1\n1e2' OUTPUT - $'1e2\n2e1' EXEC -k2g f1 INPUT f1 $'a 1e2\nb 2e1' OUTPUT - $'b 2e1\na 1e2' TEST 07 'character offsets in field' EXEC -t : -k 2.2,2.2 f1 INPUT f1 $':ba\n:ab' OUTPUT - $':ba\n:ab' EXEC -t : +1.1 -1.2 f1 EXEC -t : -k 2.2,2.2 f1 INPUT f1 $':ab\n:ba' OUTPUT - $':ba\n:ab' EXEC -t : +1.1 -1.2 f1 EXEC -t : -k 1.3,1.3 f1 EXEC -k 2.3,2.3 f1 INPUT f1 $'z ba\nz ab' OUTPUT - $'z ba\nz ab' EXEC -b -k 2.2,2.2 f1 EXEC -k 1.2,1.2 f1 INPUT f1 $'ba\nab' OUTPUT - $'ba\nab' EXEC -k 1.2,1.2 f1 INPUT f1 $'ab\nba' EXEC -k 1.4,1.4 f1 INPUT f1 $'a ab\nb ba' OUTPUT - $'b ba\na ab' TEST 08 'delimiters' EXEC -t: -k1,1b -k2,2 f1 INPUT f1 $'a\t:a\na :b' OUTPUT - $'a\t:a\na :b' EXEC -t: -k1,1b -k2,2 f1 INPUT f1 $'a :b\na\t:a' OUTPUT - $'a\t:a\na :b' EXEC -t: -k2,2b -k3,3 f1 INPUT f1 $'z:a\t:a\na :b' OUTPUT - $'z:a\t:a\na :b' EXEC -t: -k2,2b -k3,3 f1 INPUT f1 $'z:a :b\na\t:a' OUTPUT - $'a\t:a\nz:a :b' TEST 09 'numeric with delimiters' EXEC -n -t: +1 f1 INPUT f1 $'a:1\nb:-' OUTPUT - $'b:-\na:1' EXEC -n -t: +1 f1 INPUT f1 $'b:-\na:1' EXEC -n -t: +1 f1 INPUT f1 $'a:1\nb:X' OUTPUT - $'b:X\na:1' EXEC -n -t: +1 f1 INPUT f1 $'b:X\na:1' EXEC +0.1n f1 INPUT f1 $'axx\nb-1' OUTPUT - $'b-1\naxx' EXEC +0.1n f1 INPUT f1 $'b-1\naxx' TEST 18 'unique with control chars' EXEC -d -u f1 INPUT f1 $'mal\nmal-\nmala' OUTPUT - $'mal\nmala' EXEC -f -d -u f1 EXEC -i -u f1 INPUT f1 $'a\na\1' OUTPUT - $'a' EXEC -i -u f1 INPUT f1 $'a\n\1a' EXEC -i -u f1 INPUT f1 $'a\1\na' OUTPUT - $'a\1' EXEC -i -u f1 INPUT f1 $'\1a\na' OUTPUT - $'\1a' EXEC -i -u f1 INPUT f1 $'a\n\1\1\1\1\1a\1\1\1\1' OUTPUT - $'a' TEST 19 'i18n' EXEC -f f1 INPUT f1 $'\351minence\n\374berhaupt\n\'s-Gravenhage\na\353roclub\nAag\naagtappels' OUTPUT - $'\'s-Gravenhage\nAag\naagtappels\na\353roclub\n\351minence\n\374berhaupt' TEST 20 'huh' EXEC -c f1 INPUT f1 $'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' TEST 21 'analyze this' EXEC -n -k1.1,1.2 f1 INPUT f1 $' 901\n100' OUTPUT - $' 901\n100' EXEC -k1.1n,1.2 f1 EXEC -k1.1n,1.2n f1 EXEC -k1.1,1.2n f1 EXEC -b -k1.1n,1.2 f1 EXEC -b -k1.1n,1.2n f1 EXEC -b -k1.1,1.2n f1 EXEC -k1.1nb,1.2 f1 EXEC -k1.1b,1.2n f1 EXEC -k1 -k2n f1 EXEC -k1.1n,1.2b f1 OUTPUT - $'100\n 901' EXEC -k1.1n,1.2nb f1 EXEC -nb -k1.1,1.2 f1 EXEC -n -k1 f1 EXEC -k1n f1 EXEC -n -k1 -k2 f1 EXEC -k1n -k2 f1 TEST 22 'errors' DIAGNOSTICS EXEC -c f1 INPUT f1 $'A\nC\nB' EXIT [12] EXEC -cu f1 INPUT f1 $'A\nB\nB' EXEC -cu f1 INPUT f1 $'A\nA' EXEC -cu f1 INPUT f1 $'B\nA\nB' EXEC -k0 f1 INPUT f1 EXEC -k1.0 f1 EXEC -k1.1,-k0 f1 EXEC -k 2.,3 f1 EXEC -k 2, f1 TEST 23 'stable sort' EXEC -s -k2,2 INPUT - $'1 A\n2 A' SAME OUTPUT INPUT EXEC -s -k2,2r EXEC -s -r -k2,2 OUTPUT - $'2 A\n1 A' EXEC -s -r -k2,2r TEST 24 'fixed records' EXEC fixed%6 INPUT fixed%6 $'PDQRS\nBCDEF\nCD\nAB' OUTPUT - $'AB\nBCDEF\nCD\nPDQRS' EXEC -R6 fixed%6 OUTPUT - $'BCDEF\nCD\nAB\nPDQRS' EXEC -R% fixed%6 EXEC -R6 fixed%6.dat INPUT fixed%6.dat $'PDQRS\nBCDEF\nCD\nAB' EXEC -R% fixed%6.dat EXEC -R% fixed%6.dat -o test.out OUTPUT test%6.out $'BCDEF\nCD\nAB\nPDQRS' OUTPUT - EXEC fixed%6 fixed%7 INPUT fixed%7 $'UVWXYZ' OUTPUT - $'AB BCDEF CD PDQRS UVWXYZ' EXEC -R6 fixed%6 fixed%6 OUTPUT - $'BCDEF BCDEF CD AB CD AB PDQRS PDQRS' EXEC -R% fixed%6 fixed%6 EXEC -R% fixed%6 fixed_6 INPUT fixed_6 $'PDQRS\nBCDEF\nCD\nAB' EXEC -R6 fixed%6 fixed_6 EXEC -R% fixed_6 fixed%6 EXEC -R6 fixed_6 fixed%6 EXEC -R% fixed_6 OUTPUT - $'AB\nBCDEF\nCD\nPDQRS' EXEC -R% var INPUT -f var $'%c\x0c%c%c-ZZZZZZZ%c\x08%c%c-AAA%c\x09%c%c-QQQQ' OUTPUT -f - $'%c\x08%c%c-AAA%c\x09%c%c-QQQQ%c\x0c%c%c-ZZZZZZZ' EXEC -R- var EXEC -R% var -o test.out OUTPUT -f test%v32767.out $'%c\x08%c%c-AAA%c\x09%c%c-QQQQ%c\x0c%c%c-ZZZZZZZ' OUTPUT - EXEC -R% var%v123.dat -o test.out INPUT -f var%v123.dat $'%c\x0c%c%c-ZZZZZZZ%c\x08%c%c-AAA%c\x09%c%c-QQQQ' OUTPUT -f test%v123.out $'%c\x08%c%c-AAA%c\x09%c%c-QQQQ%c\x0c%c%c-ZZZZZZZ' EXEC -R6 fixed%6 fixed%7 OUTPUT -n - $'BCDEF CD AB PDQRS UVWXYZ' ERROR - $'sort: warning: incomplete record length=1' EXEC -R% fixed%6 fixed%7 OUTPUT - ERROR - $'sort: fixed%7: format f7 incompatible with fixed%6 format f6' EXIT 1 EXEC -R% flat INPUT flat $'-ZZZZZZZ\n-AAA\n-QQQQQ\n-CCCCCCCCCCCCCCCC' ERROR - $'sort: flat: record format cannot be determined from data sample' EXIT 1 TEST 25 'fixed records and fields' EXEC -s -k .5 -k .2.2 INPUT - $'zbc2\nabc1' OUTPUT - $'zbc2\nabc1' EXEC -s -k 5:2:1 EXEC -s -k .5 -k .2.3 OUTPUT - $'abc1\nzbc2' EXEC -s -k 5:3:1 TEST 26 'compressed input/output' EXEC -zO INPUT - $'5\n3\n1' IGNORE OUTPUT COPY OUTPUT o.gz EXEC -zO INPUT - $'6\n4\n2' IGNORE OUTPUT COPY OUTPUT e.gz EXEC -zI e.gz o.gz OUTPUT - $'1\n2\n3\n4\n5\n6' EXEC -zI -m e.gz o.gz EXEC -zI -m o.gz e.gz TEST 27 'non-newline delimited variable length records' EXEC -n -Rd: INPUT -n - $'1111:222:33:4:' OUTPUT -n - $'4:33:222:1111:'