# regression tests for the cut utility
# some from gnu textutils
UNIT cut
TEST '-d -f'
DATA f1 $'a:b:c'
EXEC -d: -f1,3- f1
EXEC -d: -f1,3- f1
EXEC -d: -f2- f1
EXEC -d: -f4 f1
EXEC -d: -f4 f1
TEST 02 '-c'
DATA f1
EXEC -c4 f1
DATA f1 $'123'
EXEC -c4 f1
EXEC -c4 f1
DATA f1 $'123\n1'
EXEC -c4 f1
DATA f2 $'1234567890'
EXEC -c-5 f2
EXEC -c1-5 f2
EXEC -c5- f2
EXEC -c5-10 f2
TEST 03 '-d -f -s'
DATA f1 $'abc'
EXEC -s -d: -f2,3 f1
DATA f1 $'a:b:c'
EXEC -s -d: -f3- f1
EXEC -s -d: -f3-4 f1
EXEC -s -d: -f3,4 f1
EXEC -s -d: -f2,3 f1
EXEC -s -d: -f1,3 f1
TEST 04 '-d -f'
DATA f1 $':::'
EXEC -d: -f1-3 f1
DATA f1 $':::'
EXEC -d: -f1-4 f1
EXEC -d: -f2-3 f1
EXEC -d: -f2-4 f1
DATA f5 $'1 2 3 4 5'
EXEC -d' ' -f1-5 f5
EXEC -d' ' -f1 f5
EXEC -d' ' -f2 f5
EXEC -d' ' -f3 f5
EXEC -d' ' -f4 f5
EXEC -d' ' -f5 f5
EXEC -d' ' -f1,2 f5
EXEC -d' ' -f1,3 f5
EXEC -d' ' -f1,4 f5
EXEC -d' ' -f1,5 f5
EXEC -d' ' -f2,3 f5
EXEC -d' ' -f2,4 f5
EXEC -d' ' -f2,5 f5
EXEC -d' ' -f2,4 f5
EXEC -d' ' -f3,5 f5
EXEC -d' ' -f4,5 f5
TEST 05 '-d -f -s'
DATA f1 $':::'
EXEC -s -d: -f1-3 f1
DATA f1 $':::'
EXEC -s -d: -f1-4 f1
DATA f1 $':::'
EXEC -s -d: -f2-3 f1
DATA f1 $':::'
EXEC -s -d: -f2-4 f1
DATA f1 $':::\n:'
EXEC -s -d: -f2-4 f1
DATA f1 $':::\n:1'
EXEC -s -d: -f2-4 f1
DATA f1 $':::\n:a'
EXEC -s -d: -f1-4 f1
DATA f1 $':::\n:1'
EXEC -s -d: -f3- f1
TEST 07 'no fields'
DATA f1
EXEC -f3- f1
EXEC -s -f3- f1
EXEC -b 1 f1
TEST 08 'two empty fields'
DATA f1 $':'
EXEC -s -d: -f2-4 f1
TEST 09 'fixed length records'
DATA -n f1 $'abcdefghij'
EXEC -r5 -b2-4 f1
EXEC -N -r5 -b2-4 f1
TEST 10 'misc errors'
DIAGNOSTICS
EXEC
EXEC -b
EXEC -f
DATA f1 $':'
EXEC f1
EXEC -b '' f1
EXEC -f '' f1
EXEC -s -b4 f1
TEST 11 'multibyte UTF-8 -- off-by-oners doomed here'
EXPORT LC_CTYPE=C.UTF-8
DATA a.dat $'\303\237\342\202\254\342\202\254f2\342\202\254\303\274'
EXEC -d $'\342\202\254' -f1 a.dat
DATA b.dat $'\303\237\342\202\254\342\202\254\146\062\342\202\254\303\274'
DATA c.dat $'\303\237\342\202\254\342\202\254\146\062\342\202\254\303\274\012'
for ((i = 1; i < 16; i++))
do for ((j = i + 1; j <= 16; j++))
do
for n in '' -n
do
for f in b c
do
EXEC $n -b $i-$j $f.dat
done
done
done
done
TEST 12 'multibyte euc'
EXPORT LC_CTYPE=ja_JP.eucJP
DATA a.dat $'\xa4\xa2\xa4\xa4\xa4\xa4\xa4\xa6\xa4\xa8'
EXEC -d $'\xa4\xa4' -f1 a.dat