diff options
author | Bruno Haible <bruno@clisp.org> | 2018-02-24 12:01:30 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2018-02-24 12:01:30 +0100 |
commit | d9ff660d1908a02733946f7f19a96ebd2feff3b9 (patch) | |
tree | 7b6d6a8ba7dfcdb5a12cabed86cd351a1965c1ef /tests/test-mbrtowc.c | |
parent | 262981295f31caebf08b2bfc30bf40239e117d7d (diff) | |
download | gnulib-d9ff660d1908a02733946f7f19a96ebd2feff3b9.tar.gz |
mbrtowc tests: Don't make assumptions about the charset the C locale.
* tests/test-mbrtowc.c (main): For bytes >= 0x80, don't assume a
particular mapping in the C locale.
Diffstat (limited to 'tests/test-mbrtowc.c')
-rw-r--r-- | tests/test-mbrtowc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c index a0b5231a3f..54d52f8070 100644 --- a/tests/test-mbrtowc.c +++ b/tests/test-mbrtowc.c @@ -103,7 +103,15 @@ main (int argc, char *argv[]) wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, buf, 1, &state); ASSERT (ret == 1); - ASSERT (wc == c); + if (c < 0x80) + /* c is an ASCII character. */ + ASSERT (wc == c); + else + /* argv[1] starts with '5', that is, we are testing the C or POSIX + locale. + On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF. + But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF. */ + ASSERT (wc == btowc (c)); ASSERT (mbsinit (&state)); ret = mbrtowc (NULL, buf, 1, &state); ASSERT (ret == 1); |