| #!/bin/sh |
| |
|
|
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
| |
| |
|
|
| |
| |
|
|
| . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src |
| print_ver_ fold printf |
| getlimits_ |
|
|
| |
| IO_BUFSIZE_TIMES2=$(($IO_BUFSIZE * 2)) |
|
|
| |
| head -c $IO_BUFSIZE_TIMES2 /dev/zero | fold > out || fail=1 |
| test $(wc -l < out) -eq 0 || fail=1 |
|
|
| |
| head -c $IO_BUFSIZE_TIMES2 /dev/zero | fold --characters > out || fail=1 |
| test $(wc -l < out) -eq $(($IO_BUFSIZE_TIMES2 / 80)) || fail=1 |
|
|
| test "$LOCALE_FR_UTF8" != none || skip_ "French UTF-8 locale not available" |
|
|
| LC_ALL=$LOCALE_FR_UTF8 |
| export LC_ALL |
|
|
| test $(env printf '\u200B' | wc -L) -eq 0 || |
| skip_ "character width mismatch" |
|
|
| |
| yes $(env printf '\u200B') | |
| head -n $IO_BUFSIZE_TIMES2 | tr -d '\n' > inp || framework_failure_ |
|
|
| fold inp > out || fail=1 |
| test $(wc -l < out) -eq 0 || fail=1 |
|
|
| fold --characters inp > out || fail=1 |
| test $(wc -l < out) -eq $(($IO_BUFSIZE_TIMES2 / 80)) || fail=1 |
|
|
| |
| test -w /dev/full && test -c /dev/full && |
| vm=$(get_min_ulimit_v_ fold /dev/null) && { |
| |
| for c in '\n' '\0' '\303'; do |
| tr '\0' "$c" < /dev/zero | timeout 10 $SHELL -c \ |
| "(ulimit -v $(($vm+12000)) && fold 2>err >/dev/full)" |
| ret=$? |
| test -f err || skip_ 'shell ulimit failure' |
| { test $ret = 124 || ! grep 'space' err >/dev/null; } && |
| { fail=1; cat err; echo "fold didn't diagnose ENOSPC" >&2; } |
| done |
| } |
|
|
| Exit $fail |
|
|