Subject: bug#18892: few test failure with 'grep-2.20.72-d512'

From: Jim Meyering <[email-masked]>
Date: Thu, 30 Oct 2014 12:07:36 -0700

For the record, you may want to run something like this to survey
whether \w matches E-acute across all  installed zh_CN locales:

(here's output from an os x 10.9.5 system -- on debian unstable and
fedora rawhide, they're all "0"s)
$ for i in $(locale -a|grep -i cn); do printf '\303\251'|LC_ALL=$i
src/grep -q '\w'; echo $?: $i;done
0: zh_CN
1: zh_CN.eucCN
1: zh_CN.GB18030
1: zh_CN.GB2312
1: zh_CN.GBK
0: zh_CN.UTF-8

On Thu, Oct 30, 2014 at 11:55 AM, Jim Meyering <[email-masked]> wrote:
> Thank you both for all the testing and prompt feedback!
> I've looked into the failures of the brand new word-multibyte test,
> and am hoping the attached will fix it by requiring use of
> the zh_CN.UTF-8 locale, rather than letting the system
> choose a locale matching "zh_CN".  Does this patch solve
> the problem for that test?
>
> On Wed, Oct 29, 2014 at 2:56 PM, Bruce Dubbs <[email-masked]> wrote:
>> Assaf Gordon wrote:
>>>
>>> Hello,
>>>
>>> On 10/29/2014 02:29 PM, Jim Meyering wrote:
>>>>
>>>> Thanks to many fixes and improvements by Paul Eggert and Norihiro Tanaka,
>>>> here is a pre-release snapshot:
>>>>
>>>> grep snapshot:
>>>>    http://meyering.net/grep/grep-ss.tar.xz      1.2 MB
>>>>    http://meyering.net/grep/grep-ss.tar.xz.sig
>>>>    http://meyering.net/grep/grep-2.20.72-d512.tar.xz
>>>>
>>>
>>> On Debian 7.6 (amd64, gcc 4.7.2) and Ubuntu 14.04.1 (amd64, gcc 4.8.2),
>>> these fail:
>>>    XFAIL: triple-backref
>>>    FAIL: word-multibyte
>>> Attached is the debian76.test-suite.log from Debian (Ubuntu seemed
>>> identical).
>>
>>
>> Linux From Scratch 7.6
>>
>> configure and make were clean.
>>
>> $ env RUN_EXPENSIVE_TESTS=yes make -k check
>>
>> big-match: skipped test: not enough main memory to run the test
>> sjis-mb: skipped test: SJIS locale not found
>>
>> I do have 8G of memory.
>>
>> XFAIL: triple-backref
>>
>> SKIP: test-vc-list-files-cvs.sh  (cvs not present)
>> SKIP: test-wcrtomb-w32-1.sh      (windows only?)
>> SKIP: test-wcrtomb-w32-2.sh
>> SKIP: test-wcrtomb-w32-3.sh
>> SKIP: test-wcrtomb-w32-4.sh
>> SKIP: test-wcrtomb-w32-5.sh
>> FAIL: word-multibyte
>>
>> Looking at below, the FAIL may be because I have the locale zh_CN.gb18030,
>> but not a plain zh_CN locale.
>>
>> And confirming after installing a plain zh_CN locale, word-multibyte passes.
>>
>>   -- Bruce
>>
>> ====================
>>
>> ++ initial_cwd_=/usr/src/grep/grep-2.20.72-d512/tests
>> ++ fail=0
>> +++ testdir_prefix_
>> +++ printf gt
>> ++ pfx_=gt
>> +++ mktempd_ /usr/src/grep/grep-2.20.72-d512/tests gt-word-multibyte.XXXX
>> +++ case $# in
>> +++ destdir_=/usr/src/grep/grep-2.20.72-d512/tests
>> +++ template_=gt-word-multibyte.XXXX
>> +++ MAX_TRIES_=4
>> +++ case $destdir_ in
>> +++ case $template_ in
>> ++++ unset TMPDIR
>> +++ d=/usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> +++ case $d in
>> +++ test -d /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> ++++ ls -dgo /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> ++++ tr S -
>> +++ perms='drwx------ 2 4096 Oct 29 16:24
>> /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7'
>> +++ case $perms in
>> +++ test 0 = 0
>> +++ echo /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> +++ return
>> ++ test_dir_=/usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> ++ cd /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> ++ gl_init_sh_nl_='
>> '
>> ++ IFS='
>> '
>> ++ for sig_ in 1 2 3 13 15
>> +++ expr 1 + 128
>> ++ eval 'trap '\''Exit 129'\'' 1'
>> +++ trap 'Exit 129' 1
>> ++ for sig_ in 1 2 3 13 15
>> +++ expr 2 + 128
>> ++ eval 'trap '\''Exit 130'\'' 2'
>> +++ trap 'Exit 130' 2
>> ++ for sig_ in 1 2 3 13 15
>> +++ expr 3 + 128
>> ++ eval 'trap '\''Exit 131'\'' 3'
>> +++ trap 'Exit 131' 3
>> ++ for sig_ in 1 2 3 13 15
>> +++ expr 13 + 128
>> ++ eval 'trap '\''Exit 141'\'' 13'
>> +++ trap 'Exit 141' 13
>> ++ for sig_ in 1 2 3 13 15
>> +++ expr 15 + 128
>> ++ eval 'trap '\''Exit 143'\'' 15'
>> +++ trap 'Exit 143' 15
>> ++ trap remove_tmp_ 0
>> + path_prepend_ ../src
>> + test 1 '!=' 0
>> + path_dir_=../src
>> + case $path_dir_ in
>> + abs_path_dir_=/usr/src/grep/grep-2.20.72-d512/tests/../src
>> + case $abs_path_dir_ in
>> +
>> PATH=/usr/src/grep/grep-2.20.72-d512/tests/../src:/usr/src/grep/grep-2.20.72-d512/src:/usr/local/bin:/bin:/usr/bin:/opt/texlive/2014/bin/x86_64-linux:/opt/fop:/opt/libreoffice-4.3.2.2/bin:/opt/OpenJDK-1.7.0.65-bin/bin:/opt/ant/bin:/opt/kde/bin:/opt/qt4/bin:/opt/qt5/bin:/opt/xorg/bin:/home/bdubbs/bin:/sbin:/usr/sbin
>> + create_exe_shims_ /usr/src/grep/grep-2.20.72-d512/tests/../src
>> + case $EXEEXT in
>> + return 0
>> + shift
>> + test 0 '!=' 0
>> + export PATH
>> + require_en_utf8_locale_
>> + path_prepend_ .
>> + test 1 '!=' 0
>> + path_dir_=.
>> + case $path_dir_ in
>> + abs_path_dir_=/usr/src/grep/grep-2.20.72-d512/tests/.
>> + case $abs_path_dir_ in
>> +
>> PATH=/usr/src/grep/grep-2.20.72-d512/tests/.:/usr/src/grep/grep-2.20.72-d512/tests/../src:/usr/src/grep/grep-2.20.72-d512/src:/usr/local/bin:/bin:/usr/bin:/opt/texlive/2014/bin/x86_64-linux:/opt/fop:/opt/libreoffice-4.3.2.2/bin:/opt/OpenJDK-1.7.0.65-bin/bin:/opt/ant/bin:/opt/kde/bin:/opt/qt4/bin:/opt/qt5/bin:/opt/xorg/bin:/home/bdubbs/bin:/sbin:/usr/sbin
>> + create_exe_shims_ /usr/src/grep/grep-2.20.72-d512/tests/.
>> + case $EXEEXT in
>> + return 0
>> + shift
>> + test 0 '!=' 0
>> + export PATH
>> + case $(get-mb-cur-max en_US.UTF-8) in
>> ++ get-mb-cur-max en_US.UTF-8
>> + printf '\xc3\xa1\n'
>> + LC_ALL=en_US.UTF-8
>> + export LC_ALL
>> + fail=0
>> + for LOC in en_US.UTF-8 zh_CN '$LOCALE_FR_UTF8'
>> + out=out1-en_US.UTF-8
>> + LC_ALL=en_US.UTF-8
>> + grep '\w' in
>> + compare in out1-en_US.UTF-8
>> + compare_dev_null_ in out1-en_US.UTF-8
>> + test 2 = 2
>> + test xin = x/dev/null
>> + test xout1-en_US.UTF-8 = x/dev/null
>> + return 2
>> + case $? in
>> + compare_ in out1-en_US.UTF-8
>> + diff -u in out1-en_US.UTF-8
>> + out=out2-en_US.UTF-8
>> + LC_ALL=en_US.UTF-8
>> + grep '\W' in
>> + compare /dev/null out2-en_US.UTF-8
>> + compare_dev_null_ /dev/null out2-en_US.UTF-8
>> + test 2 = 2
>> + test x/dev/null = x/dev/null
>> + test -s out2-en_US.UTF-8
>> + return 0
>> + return 0
>> + for LOC in en_US.UTF-8 zh_CN '$LOCALE_FR_UTF8'
>> + out=out1-zh_CN
>> + LC_ALL=zh_CN
>> + grep '\w' in
>> + fail=1
>> + compare in out1-zh_CN
>> + compare_dev_null_ in out1-zh_CN
>> + test 2 = 2
>> + test xin = x/dev/null
>> + test xout1-zh_CN = x/dev/null
>> + return 2
>> + case $? in
>> + compare_ in out1-zh_CN
>>  diff -u in out1-zh_CN
>> --- in   2014-10-29 16:24:46.775542037 -0500
>> +++ out1-zh_CN 2014-10-29 16:24:46.783541998 -0500
>> @@ -1 +0,0 @@
>> -Ã¡
>> + fail=1
>> + out=out2-zh_CN
>> + LC_ALL=zh_CN
>> + grep '\W' in
>> + fail=1
>> + compare /dev/null out2-zh_CN
>> + compare_dev_null_ /dev/null out2-zh_CN
>> + test 2 = 2
>> + test x/dev/null = x/dev/null
>> + test -s out2-zh_CN
>> + emit_diff_u_header_ /dev/null out2-zh_CN
>> + printf '%s\n' 'diff -u /dev/null out2-zh_CN' '--- /dev/null 1970-01-01'
>> '+++ out2-zh_CN   1970-01-01'
>> diff -u /dev/null out2-zh_CN
>> --- /dev/null  1970-01-01
>> +++ out2-zh_CN 1970-01-01
>> + sed 's/^/+/' out2-zh_CN
>> +Ã¡
>> + return 1
>> + case $? in
>> + return 1
>> + fail=1
>> + for LOC in en_US.UTF-8 zh_CN '$LOCALE_FR_UTF8'
>> + out=out1-fr_FR.UTF-8
>> + LC_ALL=fr_FR.UTF-8
>> + grep '\w' in
>> + compare in out1-fr_FR.UTF-8
>> + compare_dev_null_ in out1-fr_FR.UTF-8
>> + test 2 = 2
>> + test xin = x/dev/null
>> + test xout1-fr_FR.UTF-8 = x/dev/null
>> + return 2
>> + case $? in
>> + compare_ in out1-fr_FR.UTF-8
>> + diff -u in out1-fr_FR.UTF-8
>> + out=out2-fr_FR.UTF-8
>> + LC_ALL=fr_FR.UTF-8
>> + grep '\W' in
>> + compare /dev/null out2-fr_FR.UTF-8
>> + compare_dev_null_ /dev/null out2-fr_FR.UTF-8
>> + test 2 = 2
>> + test x/dev/null = x/dev/null
>> + test -s out2-fr_FR.UTF-8
>> + return 0
>> + return 0
>> + Exit 1
>> + set +e
>> + exit 1
>> + exit 1
>> + remove_tmp_
>> + __st=1
>> + cleanup_
>> + :
>> + cd /usr/src/grep/grep-2.20.72-d512/tests
>> + chmod -R u+rwx
>> /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> + rm -rf /usr/src/grep/grep-2.20.72-d512/tests/gt-word-multibyte.LTZ7
>> + exit 1
>> FAIL word-multibyte (exit status: 1)
>>
>>
>>