diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-11 08:21:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-11 08:21:29 +0000 |
commit | 29cd838eab01ed7110f3ccb2e8c6a35c8a31dbcc (patch) | |
tree | 63ef546b10a81d461e5cf5ed9e98a68cd7dee1aa /src/grep/tests/empty | |
parent | Initial commit. (diff) | |
download | kbuild-upstream/1%0.1.9998svn3589+dfsg.tar.xz kbuild-upstream/1%0.1.9998svn3589+dfsg.zip |
Adding upstream version 1:0.1.9998svn3589+dfsg.upstream/1%0.1.9998svn3589+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-x | src/grep/tests/empty | 82 | ||||
-rwxr-xr-x | src/grep/tests/empty-line | 41 | ||||
-rwxr-xr-x | src/grep/tests/empty-line-mb | 29 |
3 files changed, 152 insertions, 0 deletions
diff --git a/src/grep/tests/empty b/src/grep/tests/empty new file mode 100755 index 0000000..92f50bb --- /dev/null +++ b/src/grep/tests/empty @@ -0,0 +1,82 @@ +#! /bin/sh +# test that the empty file means no pattern +# and an empty pattern means match all. +# +# Copyright (C) 2001, 2006, 2009-2021 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +require_timeout_ + +failures=0 + +for locale in C en_US.UTF-8; do + for options in '-E' '-F'; do + + # should return 0 found a match + echo "" | LC_ALL=$locale timeout 10s grep $options -e '' + if test $? -ne 0 ; then + echo "Status: Wrong status code, test \#1 failed ($options $locale)" + failures=1 + fi + + # should return 1 found no match + echo abcd | LC_ALL=$locale timeout 10s grep $options -f /dev/null + if test $? -ne 1 ; then + echo "Status: Wrong status code, test \#2 failed ($options $locale)" + failures=1 + fi + + # should return 0 found a match + echo abcd \ + | LC_ALL=$locale timeout 10s grep $options -f /dev/null -e abcd + if test $? -ne 0 ; then + echo "Status: Wrong status code, test \#3 failed ($options $locale)" + failures=1 + fi + + # should return 0 found a match + echo "" | LC_ALL=$locale timeout 10s grep $options -e '' + if test $? -ne 0 ; then + echo "Status: Wrong status code, test \#4 failed ($options $locale)" + failures=1 + fi + + # should return 0 found a match + echo abcd | LC_ALL=$locale timeout 10s grep $options -e '' + if test $? -ne 0 ; then + echo "Status: Wrong status code, test \#5 failed ($options $locale)" + failures=1 + fi + done + + for options in '-E -w' '-E -x' '-E -w -x' '-F -w' '-F -x' '-F -w -x'; do + + # should return 0 found a match + echo "" | LC_ALL=$locale timeout 10s grep $options -e '' + if test $? -ne 0 ; then + echo "Status: Wrong status code, test \#6 failed ($options $locale)" + failures=1 + fi + + # should return 1 found no match + echo abcd | LC_ALL=$locale timeout 10s grep $options -f /dev/null + if test $? -ne 1 ; then + echo "Status: Wrong status code, test \#7 failed ($options $locale)" + failures=1 + fi + + # should return 1 found no match + echo abcd | LC_ALL=$locale timeout 10s grep $options -f /dev/null -e "" + if test $? -ne 1 ; then + echo "Status: Wrong status code, test \#8 failed ($options $locale)" + failures=1 + fi + done +done + +Exit $failures diff --git a/src/grep/tests/empty-line b/src/grep/tests/empty-line new file mode 100755 index 0000000..25e9509 --- /dev/null +++ b/src/grep/tests/empty-line @@ -0,0 +1,41 @@ +#! /bin/sh +# Test that the empty pattern matches everything. +# Some of these tests failed in grep 2.18. + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +fail=0 +printf 'abc\n' >in || framework_failure_ +nl=' +' + +for opt in '' -E -F; do + case $opt in + '') prefix='\(\)\1';; + -E) prefix='()\1';; + -F) prefix="foo$nl";; + esac + + for pattern in "" "$nl" "---$nl" "${nl}foo"; do + for pat in "$pattern" "$prefix$pattern"; do + grep $opt -e "$pat" in >out || fail=1 + compare in out || fail=1 + + printf -- '%s\n' "$pat" >pat || framework_failure_ + grep $opt -f pat in >out || fail=1 + compare in out || fail=1 + + # Check that pattern files that end in non-newlines + # are treated as if a newline were appended. + case $pattern in + '' | *"$nl") ;; + *) + printf -- '%s' "$pat" >pat || framework_failure_ + grep $opt -f pat in >out || fail=1 + compare in out || fail=1;; + esac + done + done +done + +Exit $fail diff --git a/src/grep/tests/empty-line-mb b/src/grep/tests/empty-line-mb new file mode 100755 index 0000000..579921d --- /dev/null +++ b/src/grep/tests/empty-line-mb @@ -0,0 +1,29 @@ +#! /bin/sh +# Exercise bugs in grep-2.13 with -i, -n and an RE of ^$ in a multi-byte locale. +# +# Copyright (C) 2012-2021 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +require_en_utf8_locale_ + +LC_ALL=en_US.UTF-8 +export LC_ALL + +printf 'a\n\nb\n' > in || framework_failure_ +printf '2:\n' > exp || framework_failure_ + +printf 'a\nb\n' > in2 || framework_failure_ + +grep -n -i '^$' in > out || fail=1 +compare exp out || fail=1 + +# Expect no match: with grep-2.13 this would mistakenly exit 0 +grep -i '^$' in2 > out && fail=1 +compare /dev/null out || fail=1 + +Exit $fail |