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

From: Jim Meyering <[email-masked]>
Date: Thu, 30 Oct 2014 11:55:54 -0700

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)
>
>
>