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