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 }