diff options
Diffstat (limited to '')
-rwxr-xr-x | src/grep/tests/char-class-multibyte | 30 | ||||
-rwxr-xr-x | src/grep/tests/char-class-multibyte2 | 19 |
2 files changed, 49 insertions, 0 deletions
diff --git a/src/grep/tests/char-class-multibyte b/src/grep/tests/char-class-multibyte new file mode 100755 index 0000000..b957518 --- /dev/null +++ b/src/grep/tests/char-class-multibyte @@ -0,0 +1,30 @@ +#!/bin/sh +# This would segfault for grep-2.6 +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +require_en_utf8_locale_ +require_compiled_in_MB_support + +printf 'é\n' > exp1 || framework_failure_ +fail=0 + +for LOC in en_US.UTF-8 $LOCALE_FR_UTF8; do + out=out1-$LOC + printf 'á\nç\né\n' | LC_ALL=$LOC grep '[é]' > $out || fail=1 + compare exp1 $out || fail=1 +done + +printf 'É\n' > exp2 || framework_failure_ + +for LOC in en_US.UTF-8 $LOCALE_FR_UTF8; do + out=out2-$LOC + printf 'Á\nÇ\nÉ\n' | LC_ALL=$LOC grep '[É]' > $out || fail=1 + compare exp2 $out || fail=1 +done + +for LOC in en_US.UTF-8 $LOCALE_FR_UTF8; do + out=out3-$LOC + printf '\303\n' | returns_ 1 env LC_ALL=$LOC grep '[é]' > $out || fail=1 +done + +Exit $fail diff --git a/src/grep/tests/char-class-multibyte2 b/src/grep/tests/char-class-multibyte2 new file mode 100755 index 0000000..6cdada5 --- /dev/null +++ b/src/grep/tests/char-class-multibyte2 @@ -0,0 +1,19 @@ +#!/bin/sh +# This test would segfault for grep-2.14 +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +require_en_utf8_locale_ +require_compiled_in_MB_support + +e_acute=$(printf '\303\251') +printf "$e_acute\n" > exp || framework_failure_ +fail=0 + +for LOC in en_US.UTF-8 $LOCALE_FR_UTF8; do + out=out-$LOC + printf "á\nç\n$e_acute\n" | LC_ALL=$LOC grep -E "([^.]*[$e_acute]){1,2}" \ + > $out || fail=1 + compare exp $out || fail=1 +done + +Exit $fail |