1#include <assert.h>2#include <errno.h>3#include <stdio.h>4#include <stdlib.h>5#include <string.h>6#include <wchar.h>78#include "mbtest.h"910/*11output:12testing13testing mbrlen114testing mbrlen215testing mblen16done17end:18*/1920#define NELEM(x) (sizeof(x)/sizeof(x[0]))2122void23tests_mbrlen(void)24{25 struct mbtest *tp;26 int r;27 mbstate_t s;2829 puts("testing mbrlen1");30 for (tp = tests; tp < &tests[NELEM(tests)]; ++tp) {31 wc = -1;32 errno = 0;33 r = mbrlen(tp->s, tp->l, NULL);34 assert(tp->rmbr == r);35 assert(tp->syserr == errno);36 }3738 puts("testing mbrlen2");39 memset(&s, 0, sizeof(s));40 for (tp = tests; tp < &tests[NELEM(tests)]; ++tp) {41 wc = -1;42 errno = 0;43 r = mbrlen(tp->s, tp->l, &s);44 assert(tp->rmbr == r);45 assert(tp->syserr == errno);46 assert(mbsinit(&s) != 0 == tp->mbstate);47 }48}4950void51tests_mblen(void)52{53 struct mbtest *tp;54 int r, rt;5556 puts("testing mblen");57 for (tp = tests; tp < &tests[NELEM(tests)]; ++tp) {58 r = mblen(tp->s, tp->l);59 assert(tp->rmb == r);60 }61}6263int64main()65{66 puts("testing");67 tests_mbrlen();68 tests_mblen();69 puts("done");70 return 0;71}