diff options
author | Bruno Haible <bruno@clisp.org> | 2023-03-30 12:25:05 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2023-03-30 14:28:55 +0200 |
commit | 4993fb36f8c9d1a18b33285a941ae3ed2aa54c59 (patch) | |
tree | e1aa47959ac3492034f2aa0490abb055b7e58b94 /tests | |
parent | a9447b51ea6d87507b1e853023c7adc428267ece (diff) | |
download | gnulib-4993fb36f8c9d1a18b33285a941ae3ed2aa54c59.tar.gz |
stdlib tests: Check behaviour of C locale.
* tests/test-stdlib.c (main): Check MB_CUR_MAX.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-stdlib.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/test-stdlib.c b/tests/test-stdlib.c index ceccd4d233..0d3984701a 100644 --- a/tests/test-stdlib.c +++ b/tests/test-stdlib.c @@ -45,8 +45,19 @@ static_assert (sizeof NULL == sizeof (void *)); int main (void) { - if (test_sys_wait_macros ()) + /* POSIX:2018 says: + "In the POSIX locale the value of MB_CUR_MAX shall be 1." */ + /* On Android ≥ 5.0, the default locale is the "C.UTF-8" locale, not the + "C" locale. Furthermore, when you attempt to set the "C" or "POSIX" + locale via setlocale(), what you get is a "C" locale with UTF-8 encoding, + that is, effectively the "C.UTF-8" locale. */ +#ifndef __ANDROID__ + if (MB_CUR_MAX != 1) return 1; +#endif + + if (test_sys_wait_macros ()) + return 2; return exitcode; } |