|
|
#!/bin/sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src |
|
|
print_ver_ csplit |
|
|
|
|
|
|
|
|
|
|
|
(echo a; echo; echo) > in |
|
|
csplit in '/^$/' 2 > out || fail=1 |
|
|
cat <<EOF > exp |
|
|
2 |
|
|
0 |
|
|
2 |
|
|
EOF |
|
|
compare exp out || fail=1 |
|
|
rm -f in out exp |
|
|
|
|
|
|
|
|
|
|
|
printf '\n\n' > exp |
|
|
cp xx02 out || fail=1 |
|
|
compare exp out || fail=1 |
|
|
rm -f in out exp |
|
|
|
|
|
|
|
|
(echo; echo a) > in |
|
|
csplit in '/a/-1' '{*}' > out || fail=1 |
|
|
cat <<EOF > exp |
|
|
0 |
|
|
3 |
|
|
EOF |
|
|
compare exp out || fail=1 |
|
|
rm -f in out exp |
|
|
|
|
|
|
|
|
echo > in |
|
|
csplit in 1 1 > out 2> err || fail=1 |
|
|
cat <<EOF > exp |
|
|
0 |
|
|
0 |
|
|
1 |
|
|
EOF |
|
|
compare exp out || fail=1 |
|
|
cat <<\EOF > experr |
|
|
csplit: warning: line number '1' is the same as preceding line number |
|
|
EOF |
|
|
compare experr err || fail=1 |
|
|
rm -f in out exp err experr |
|
|
|
|
|
|
|
|
|
|
|
echo > in |
|
|
csplit -b '%0#6.3x' in 1 > out 2> err || fail=1 |
|
|
cat <<EOF > exp |
|
|
0 |
|
|
1 |
|
|
EOF |
|
|
compare exp out || fail=1 |
|
|
touch experr |
|
|
compare experr err || fail=1 |
|
|
compare 'xx 000' experr || fail=1 |
|
|
compare 'xx 0x001' in || fail=1 |
|
|
rm -f in out exp err experr xx* |
|
|
|
|
|
|
|
|
echo > in |
|
|
csplit in 0 > out 2> err && fail=1 |
|
|
csplit in 2 1 > out 2>> err && fail=1 |
|
|
csplit in 3 3 > out 2>> err && fail=1 |
|
|
cat <<\EOF > experr |
|
|
csplit: 0: line number must be greater than zero |
|
|
csplit: line number '1' is smaller than preceding line number, 2 |
|
|
csplit: warning: line number '3' is the same as preceding line number |
|
|
csplit: '3': line number out of range |
|
|
EOF |
|
|
compare experr err || fail=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rm -f in out exp err experr xx?? |
|
|
printf 'x%8199s\nx\n%8199s\nx\n' x x > in |
|
|
csplit in '/x\{1\}/' '{*}' > /dev/null || fail=1 |
|
|
cat xx?? | compare - in || fail=1 |
|
|
|
|
|
|
|
|
|
|
|
rm -f xx?? |
|
|
csplit /dev/null 1 >/dev/null 2>err && fail=1 |
|
|
test -f xx00 && fail=1 |
|
|
cat <<\EOF > experr |
|
|
csplit: '1': line number out of range |
|
|
EOF |
|
|
compare experr err || fail=1 |
|
|
|
|
|
Exit $fail |
|
|
|