From: Bruno Haible Date: Sat, 24 Feb 2018 11:01:30 +0000 (+0100) Subject: mbrtowc tests: Don't make assumptions about the charset the C locale. X-Git-Tag: v1.0~5724 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=d9ff660d1908a02733946f7f19a96ebd2feff3b9;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 66996fa90a..0c1ebc057e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-02-24 Bruno Haible + + 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. + 2018-02-24 Bruno Haible ptsname_r: Don't expect that this function sets errno. 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);