diff options
Diffstat (limited to 'src/grep/tests/word-delim-multibyte')
-rwxr-xr-x | src/grep/tests/word-delim-multibyte | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/grep/tests/word-delim-multibyte b/src/grep/tests/word-delim-multibyte new file mode 100755 index 0000000..31190ad --- /dev/null +++ b/src/grep/tests/word-delim-multibyte @@ -0,0 +1,45 @@ +#!/bin/sh +# exercise \< and \> with multibyte data. +# Derived from https://savannah.gnu.org/bugs/?29537 +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +require_en_utf8_locale_ + +e_acute=$(printf '\303\251') +echo "$e_acute" > in || framework_failure_ +LC_ALL=en_US.UTF-8 +export LC_ALL + +fail=0 + +grep "\\<$e_acute" in > out 2>err || fail=1 +compare out in || fail=1 +compare /dev/null err || fail=1 + +grep "$e_acute\\>" in > out 2>err || fail=1 +compare out in || fail=1 +compare /dev/null err || fail=1 + +grep -w "$e_acute" in > out 2>err || fail=1 +compare out in || fail=1 +compare /dev/null err || fail=1 + +# Also ensure that this works in both the C locale and that multibyte one. +# In the C locale, it failed due to a dfa.c regression in grep-3.2. +echo 123-x > in || framework_failure_ + +for locale in C en_US.UTF-8; do + LC_ALL=$locale grep '.\bx' in > out 2>err || fail=1 + compare out in || fail=1 + compare /dev/null err || fail=1 +done + +# Bug#43255 +printf 'a \303\255cone b\n' >in +for flag in '' -i; do + returns_ 1 env LC_ALL=en_US.UTF-8 grep -w $flag cone in >out 2>err || fail=1 + compare /dev/null out || fail=1 + compare /dev/null err || fail=1 +done + +Exit $fail |