bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Silent test failures when no French, Japanese, Chinese locales insta


From: Richard W.M. Jones
Subject: Re: Silent test failures when no French, Japanese, Chinese locales installed
Date: Fri, 16 Nov 2018 08:38:16 +0000
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Nov 16, 2018 at 12:04:36AM +0100, Bruno Haible wrote:
> Hi Richard,
> 
> > After upgrading to Fedora 29, the glibc-langpack-fr locale is no
> > longer installed by default.  This causes many tests to fail silently:
> > 
> > ./gnulib/tests/test-suite.log:FAIL: test-btowc1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-btowc2.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-c-strcase.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc2.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc3.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc4.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs2.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs3.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs4.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-setlocale1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-wcrtomb.sh
> > 
> > The failures are completely silent.  It seems as if about
> > 6 months ago it used to print an error message:
> > 
> >   Skipping test: no traditional french locale is installed
> > 
> > But for some reason that is no longer printed:
> > 
> >   $ LC_ALL=fr_FR ./test-btowc 1
> >   $ echo $?
> >   1
> 
> I cannot reproduce this. Just installed a Fedora 29, configured and
> ran a gnulib testdir created through
> $ ./gnulib-tool --create-testdir --dir=../testdir-posix --with-tests 
> --single-configure `./posix-modules`
> and all tests pass, including these that you listed.
>
> Can you provide these infos?
> 
> $ yum list --installed | grep glibc-langpack-fr

$ yum list --installed | grep glibc-langpack
glibc-langpack-en.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-fr.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-ja.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-tr.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-zh.x86_64                         2.28-17.fc29                   
        @updates               

These were installed on the machine (to fix the tests).

I have uninstalled glibc-langpack-{fr,ja,tr,zh} and the tests are
silently failing again.  After uninstallation:

$ yum list --installed | grep glibc-langpack
glibc-langpack-en.x86_64                         2.28-17.fc29                   
        @updates        

> Expected: empty
> 
> $ locale -a | grep ^fr_FR
>
> Expected:
> fr_FR
> address@hidden
> fr_FR.iso88591
> address@hidden
> fr_FR.utf8

There is _no_ output from the above command.
In fact the full locale -a output is:

C
C.utf8
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.utf8
en_IE
address@hidden
en_IE.utf8
en_IL
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SC.utf8
en_SG
en_SG.utf8
en_US
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8
POSIX

> $ grep LOCALE_FR config.status
> 
> S["LOCALE_FR_UTF8"]="fr_FR.UTF-8"
> S["LOCALE_FR"]="fr_FR"

Since I'm using gnulib from libguestfs, here's what's in the
libguestfs config.status:

$ grep LOCALE_FR config.status
S["LOCALE_FR"]="fr_FR"
S["LOCALE_FR_UTF8"]="fr_FR.UTF-8"

> $ ldd test-btowc
> 
> Expected:
>         linux-vdso.so.1
>         libc.so.6 => /lib64/libc.so.6
>         /lib64/ld-linux-x86-64.so.2

$ ldd test-btowc
  linux-vdso.so.1 (0x00007ffe6fdcf000)
  libc.so.6 => /lib64/libc.so.6 (0x00007f8d5402f000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f8d54225000)

> $ LC_ALL=fr_FR strace ./test-btowc 1

Attached as ‘strace.log’.

> $ LC_ALL=fr_FR ltrace ./test-btowc 1

Just:

+++ exited (status 1) +++

Is my ltrace broken?

> And of course the GCC command line options and relevant environment
> variables that you used during the configure step.

export CFLAGS="$(rpm --eval '%{optflags}')"
export CXXFLAGS="$(rpm --eval '%{optflags}')"
export LDFLAGS="$(rpm --eval '%{__global_ldflags}')"
./autogen.sh \
  --prefix /usr \
  --libdir /usr/lib64 \
  --disable-static \
  --with-default-backend=libvirt \
  --with-extra="local,libvirt" \
  --enable-werror \
  --disable-golang \
  --with-gtk=2 \
  -C

The CFLAGS etc expand to:

CFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 
-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong 
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic 
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection"
LDFLAGS="-Wl,-z,relro  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld"

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/

Attachment: strace.log
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]