diff options
author | tjr <tjr@FreeBSD.org> | 2004-05-11 13:10:47 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2004-05-11 13:10:47 +0000 |
commit | db217681a38d7d6ee9819241ce4cdf0084025446 (patch) | |
tree | a8464f9c8e9b013ab98fd8767a51706c01c519f8 /tools/regression/lib/libc | |
parent | 104658ee3ed8e728c07ec133d8c3e6af16416017 (diff) | |
download | FreeBSD-src-db217681a38d7d6ee9819241ce4cdf0084025446.zip FreeBSD-src-db217681a38d7d6ee9819241ce4cdf0084025446.tar.gz |
Test accumulation of partial multibyte characters in conversion
state objects.
Diffstat (limited to 'tools/regression/lib/libc')
-rw-r--r-- | tools/regression/lib/libc/locale/test-mbrtowc.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/regression/lib/libc/locale/test-mbrtowc.c b/tools/regression/lib/libc/locale/test-mbrtowc.c index 630ae2e..ec6132d 100644 --- a/tools/regression/lib/libc/locale/test-mbrtowc.c +++ b/tools/regression/lib/libc/locale/test-mbrtowc.c @@ -144,6 +144,17 @@ main(int argc, char *argv[]) assert(mbrtowc(&wc, buf, 2, &s) == 2); assert(wc == 0xa3c1); + /* Test restarting behaviour. */ + memset(buf, 0xcc, sizeof(buf)); + buf[0] = 0xa3; + memset(&s, 0, sizeof(s)); + wc = 0; + assert(mbrtowc(&wc, buf, 1, &s) == (size_t)-2); + assert(wc == 0); + buf[0] = 0xc1; + assert(mbrtowc(&wc, buf, 1, &s) == 1); + assert(wc == 0xa3c1); + printf("PASS mbrtowc()\n"); return (0); |