scc

A fork of https://git.simple-cc.org/scc/ for Qute

git clone https://git.8pit.net/scc.git

 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/*
11output:
12testing
13testing mbrlen1
14testing mbrlen2
15testing mblen
16done
17end:
18*/
19
20#define NELEM(x) (sizeof(x)/sizeof(x[0]))
21
22void
23tests_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
50void
51tests_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
63int
64main()
65{
66	puts("testing");
67	tests_mbrlen();
68	tests_mblen();
69	puts("done");
70	return 0;
71}