Blame tests/empty-line

Packit 709fb3
#! /bin/sh
Packit 709fb3
# Test that the empty pattern matches everything.
Packit 709fb3
# Some of these tests failed in grep 2.18.
Packit 709fb3
Packit 709fb3
. "${srcdir=.}/init.sh"; path_prepend_ ../src
Packit 709fb3
Packit 709fb3
fail=0
Packit 709fb3
printf 'abc\n' >in || framework_failure_
Packit 709fb3
nl='
Packit 709fb3
'
Packit 709fb3
Packit 709fb3
for opt in '' -E -F; do
Packit 709fb3
  case $opt in
Packit 709fb3
    '') prefix='\(\)\1';;
Packit 709fb3
    -E) prefix='()\1';;
Packit 709fb3
    -F) prefix="foo$nl";;
Packit 709fb3
  esac
Packit 709fb3
Packit 709fb3
  for pattern in "" "$nl" "---$nl" "${nl}foo"; do
Packit 709fb3
    for pat in "$pattern" "$prefix$pattern"; do
Packit 709fb3
      grep $opt -e "$pat" in >out || fail=1
Packit 709fb3
      compare in out || fail=1
Packit 709fb3
Packit 709fb3
      printf -- '%s\n' "$pat" >pat || framework_failure_
Packit 709fb3
      grep $opt -f pat in >out || fail=1
Packit 709fb3
      compare in out || fail=1
Packit 709fb3
Packit 709fb3
      # Check that pattern files that end in non-newlines
Packit 709fb3
      # are treated as if a newline were appended.
Packit 709fb3
      case $pattern in
Packit 709fb3
        '' | *"$nl") ;;
Packit 709fb3
        *)
Packit 709fb3
          printf -- '%s' "$pat" >pat || framework_failure_
Packit 709fb3
          grep $opt -f pat in >out || fail=1
Packit 709fb3
          compare in out || fail=1;;
Packit 709fb3
      esac
Packit 709fb3
    done
Packit 709fb3
  done
Packit 709fb3
done
Packit 709fb3
Packit 709fb3
Exit $fail