gflohr / libintl-perl

Official repository for libintl-perl
http://www.guido-flohr.net/en/projects/#libintl-perl
GNU General Public License v3.0
5 stars 4 forks source link

Tests fail with perl 5.28 #3

Closed stoecker closed 6 years ago

stoecker commented 6 years ago

The tests fail with perl 5.28:

Failed test 2 in ./tests/04find_domain_bug.t at line 60 ./tests/04find_domain_bug.t line 60 is: skip $missing_locale, "Feber" eq $translation;

See e.g. https://build.opensuse.org/build/devel:languages:perl/openSUSE_Tumbleweed/ppc64/perl-libintl-perl/_log

ciz commented 6 years ago

The tests fail with perl 5.28:

It might be more related to glibc 2.28 upgrade (from 2.27)

Failed test 2 in ./tests/04find_domain_bug.t at line 60 ./tests/04find_domain_bug.t line 60 is: skip $missing_locale, "Feber" eq $translation;

In the condition above, $translation == "February"

See e.g. https://build.opensuse.org/build/devel:languages:perl/openSUSE_Tumbleweed/ppc64/perl-libintl-perl/_log

Your build log link can't be viewed anonymously, but this one can: https://build.opensuse.org/public/build/openSUSE:Factory:Staging:C/standard/x86_64/perl-libintl-perl/_log

gflohr commented 6 years ago

I had already tried to reproduce the issue but at no avail. The test fails neither on Mac OS Mojave nor on Gentoo with glibc 2.26. But I can see from the build log that it is actually using the gettext implementation from the libc, not the pure Perl version.

The context of the failure is:

Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
Locale::Messages::nl_putenv ("LC_ALL=de_AT");
Locale::Messages::nl_putenv ("LANG=de_AT");
Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");

my $missing_locale = Locale::Messages::setlocale (POSIX::LC_ALL() => '') ?
    '' : 'locale de_AT missing';

my $locale = Locale::Messages::setlocale (POSIX::LC_ALL() => '');
my $translation = Locale::TextDomain::__("February");
skip $missing_locale, "Feber" eq $translation;

The only possible reason for a failure should be that the locale "de_AT" is not installed but in that case the test should be skipped.

Does anybody know of a docker image using glibc 2..28?

gflohr commented 6 years ago

Actually all tests that use the libc version of gettext are disabled by default because they too much depend on local configuration. This one test slipped through.

If this is blocker for you, just delete the test in your src rpm as it is rather a bug in the test than in the implementation (which is in fact the implementation in the libc). I will keep the issue open as a reminder for me to debug the reason.

ciz commented 6 years ago

Thanks for checking this. We'll disable the test for now.

kentfredric commented 5 years ago

nor on Gentoo with glibc 2.26

It may be worth mentioning that Gentoo will probably have all the locales by default, but people often employ a tweak mentioned in the install guide to only have the locales they need.