Blame tests/long-line-vs-2GiB-read

Packit 709fb3
#!/bin/sh
Packit 709fb3
# Ensure that grep can handle lines 2GiB long.
Packit 709fb3
# Before grep-2.16, a line of length 2^31 or greater would provoke
Packit 709fb3
# an "Invalid argument" (EINVAL) failure from the read syscall on
Packit 709fb3
# systems like OS/X 10.8.5.
Packit 709fb3
Packit 709fb3
. "${srcdir=.}/init.sh"; path_prepend_ ../src
Packit 709fb3
Packit 709fb3
# Searching 2GiB takes a while.
Packit 709fb3
expensive_
Packit 709fb3
Packit 709fb3
echo big > exp || framework_failure_
Packit 709fb3
Packit 709fb3
MiB=1048576
Packit 709fb3
dd bs=$MiB seek=2048 of=big < /dev/null || framework_failure_
Packit 709fb3
echo x >> big || framework_failure_
Packit 709fb3
grep -l x big > out 2> err || fail=1
Packit 709fb3
Packit 709fb3
# Not everyone has 2GB of memory free.
Packit 709fb3
grep '^grep: memory exhausted$' err && skip_ 'memory exhausted'
Packit 709fb3
Packit 709fb3
compare exp out || fail=1
Packit 709fb3
compare /dev/null err || fail=1
Packit 709fb3
Packit 709fb3
Exit $fail