0041-mbrlen.c - scc - simple c99 compiler
(HTM) git clone git://git.simple-cc.org/scc
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
0041-mbrlen.c (1078B)
---
1 #include <assert.h>
2 #include <errno.h>
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include <wchar.h>
7
8 #include "mbtest.h"
9
10 /*
11 output:
12 testing
13 testing mbrlen1
14 testing mbrlen2
15 testing mblen
16 done
17 end:
18 */
19
20 #define NELEM(x) (sizeof(x)/sizeof(x[0]))
21
22 void
23 tests_mbrlen(void)
24 {
25 struct mbtest *tp;
26 int r;
27 mbstate_t s;
28
29 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 }
37
38 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 }
49
50 void
51 tests_mblen(void)
52 {
53 struct mbtest *tp;
54 int r, rt;
55
56 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 }
62
63 int
64 main()
65 {
66 puts("testing");
67 tests_mbrlen();
68 tests_mblen();
69 puts("done");
70 return 0;
71 }