Bug #70574 [PATCH]: Tests fail due to relying on Linux fallback behavior for gettext()

From: Date: Wed, 05 Aug 2020 12:05:41 +0000
Subject: Bug #70574 [PATCH]: Tests fail due to relying on Linux fallback behavior for gettext()
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-228414@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70574&edit=1 ID: 70574 Patch added by: flo@dotbox.org Reported by: rainer dot jung at kippdata dot de Summary: Tests fail due to relying on Linux fallback behavior for gettext() Status: Open Type: Bug Package: Gettext related Operating System: Solaris PHP Version: 7.0.0RC3 Block user comment: N Private report: N New Comment: The following pull request has been associated: Patch Name: Move message catalog to proper locale directory to fix #70574 On GitHub: https://github.com/php/php-src/pull/5940 Patch: https://github.com/php/php-src/pull/5940.patch Previous Comments: ------------------------------------------------------------------------ [2015-09-24 16:34:59] rainer dot jung at kippdata dot de Description: ------------ The following six gettext tests fail on Solaris: - ext/gettext/tests/gettext_basic-enus.phpt - ext/gettext/tests/gettext_bindtextdomain-cwd.phpt - ext/gettext/tests/gettext_dcgettext.phpt - ext/gettext/tests/gettext_dgettext.phpt - ext/gettext/tests/gettext_dngettext-plural.phpt - ext/gettext/tests/gettext_ngettext.phpt They fail, because they set locale to en_US.UTF-8, but the message catalog used in the tests is located in ext/gettext/tests/locale/en. On Linux, gettext() has a fallback behavior. If it can't find the message for a certain locale, it will try other similar locals. So after looking for en_US.UTF-8, it checks en_US and finally en. But this behavior is a non-standard extension. On Solaris, gettext() will not fall back from en_US.UTF-8 to en. The problem can be fixed for any platform, by moving the directory with the test message catalog to the correct place: - move ext/gettext/tests/locale/en to ext/gettext/tests/locale/en_US.UTF-8 - move ext/gettext/tests/locale/fi to ext/gettext/tests/locale/fi_FI ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=70574&edit=1

« previous php.bugs (#228414) next »