-
Notifications
You must be signed in to change notification settings - Fork 13.6k
[libcxx][test][AIX] Fix the thousands_sep expectation for fr_FR locales #92312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Similar to some other platforms, AIX uses ' ' for non-wide characters and U202F for wide characters.
@llvm/pr-subscribers-libcxx Author: David Tenty (daltenty) ChangesSimilar to some other platforms, AIX uses ' ' for non-wide characters and U202F for wide characters, so this change opts into those paths for AIX as well. Full diff: https://github.com/llvm/llvm-project/pull/92312.diff 1 Files Affected:
diff --git a/libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp b/libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
index d7e1178c92e04..afab7f4e7d19f 100644
--- a/libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
@@ -9,7 +9,6 @@
// NetBSD does not support LC_NUMERIC at the moment
// XFAIL: netbsd
-// XFAIL: LIBCXX-AIX-FIXME
// XFAIL: LIBCXX-FREEBSD-FIXME
// REQUIRES: locale.en_US.UTF-8
@@ -64,7 +63,7 @@ int main(int, char**)
// The below tests work around GLIBC's use of U202F as LC_NUMERIC thousands_sep.
std::locale l(LOCALE_fr_FR_UTF_8);
{
-#if defined(_CS_GNU_LIBC_VERSION) || defined(_WIN32)
+#if defined(_CS_GNU_LIBC_VERSION) || defined(_WIN32) || defined(_AIX)
const char sep = ' ';
#else
const char sep = ',';
@@ -77,6 +76,8 @@ int main(int, char**)
{
#if defined(_CS_GNU_LIBC_VERSION)
const wchar_t wsep = glibc_version_less_than("2.27") ? L' ' : L'\u202f';
+#elif defined(_AIX)
+ const wchar_t wsep = L'\u202f';
#elif defined(_WIN32)
const wchar_t wsep = L'\u00A0';
#else
|
✅ With the latest revision this PR passed the C/C++ code formatter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM modulo one nit.
.../localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
Outdated
Show resolved
Hide resolved
Co-authored-by: Mark de Wever <[email protected]>
…#94826) This is a follow on to #92312, where we address some more locale platform differences. These are: - for locale fr_FR AIX libc expects `U202F` as `LC_MONETARY` `thousands_sep` - for locale zh_CN AIX libc `LC_MONETARY` has `n_sign_posn == 1`, indicating the `negative_sign` should come before the `currency_symbol` string
… (#94826) This is a follow on to llvm/llvm-project#92312, where we address some more locale platform differences. These are: - for locale fr_FR AIX libc expects `U202F` as `LC_MONETARY` `thousands_sep` - for locale zh_CN AIX libc `LC_MONETARY` has `n_sign_posn == 1`, indicating the `negative_sign` should come before the `currency_symbol` string NOKEYCHECK=True GitOrigin-RevId: 9afb09e674d6195faf09431dda8a3a08886ab27d
Similar to some other platforms, AIX uses ' ' for non-wide characters and U202F for wide characters, so this change opts into those paths for AIX as well.