Blob Blame History Raw
#!/bin/sh
# Ensure that we don't trigger a grep -F infloop.

. "${srcdir=.}/init.sh"; path_prepend_ ../src

require_en_utf8_locale_
require_compiled_in_MB_support
require_timeout_

encode() { echo "$1" | tr A '\202'; }

encode AA > input

fail=0

# Before 2.15, this would infloop.
LC_ALL=en_US.UTF-8 timeout 10 grep -aF $(encode A) input > out
status=$?
if test $status -eq 0; then
  compare input out
elif test $status -eq 1; then
  compare_dev_null_ /dev/null out
else
  test $status -eq 2
fi || fail=1

echo 'Binary file input matches' >binary-file-matches

LC_ALL=en_US.UTF-8 timeout 10 grep -F $(encode A) input > out
status=$?
if test $status -eq 0; then
  compare binary-file-matches out
elif test $status -eq 1; then
  compare_dev_null_ /dev/null out
else
  test $status -eq 2
fi || fail=1

Exit $fail