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 }