1/*
2 * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
3 *
4 * FILE: dat_mbrlen.c
5 *
6 * MBRLEN: size_t mbrlen (const char *s, size_t n, mbstate_t *ps);
7 */
8
9/*
10 * NOTE:
11 * (1) A mbstate object is initialized for
12 * every new data record by the test program.
13 *
14 * (2) USE_MBCURMAX is defined as a value of 99.
15 *
16 */
17
18
19TST_MBRLEN tst_mbrlen_loc [] = {
20 {
21 { Tmbrlen, TST_LOC_de },
22 {
23 { /*----------------- #01 -----------------*/
24 {
25 {
26 { 1, "", 0, 0, 0 },
27 { 1, "", 1, 0, 0 },
28 { 1, "\300", USE_MBCURMAX, 0, 0 },
29 }
30 },
31 {
32 {
33 { 0, 1, -2, },
34 { 0, 1, 0, },
35 { 0, 1, 1, },
36 }
37 }
38 },
39 { /*----------------- #02 -----------------*/
40 {
41 {
42 { 1, "\300\001", 0, 0, 0 },
43 { 1, "\300\001", 1, 0, 0 },
44 { 1, "\317\001", USE_MBCURMAX, 0, 0 },
45 }
46 },
47 {
48 {
49 { 0, 1, -2, },
50 { 0, 1, 1, },
51 { 0, 1, 1, },
52 }
53 }
54 },
55 { .is_last = 1 }
56 }
57 },
58 {
59 { Tmbrlen, TST_LOC_enUS },
60 {
61 { /*----------------- #01 -----------------*/
62 {
63 {
64 { 1, "A", 0, 0, 0 },
65 { 1, "A", 1, 0, 0 },
66 { 1, "A", USE_MBCURMAX, 0, 0 },
67 }
68 },
69 {
70 {
71 { 0, 1, -2, },
72 { 0, 1, 1, },
73 { 0, 1, 1, },
74 }
75 }
76 },
77 { /*----------------- #02 -----------------*/
78 {
79 {
80 { 1, "\317\001", 0, 1, 0 },
81 { 1, "\317\001", 1, 1, 0 },
82 { 1, "\317\001", USE_MBCURMAX, 1, 0 },
83 }
84 },
85 {
86 {
87 { 0, 1, -2, },
88 { EILSEQ, 1, -1, },
89 { EILSEQ, 1, -1, },
90 }
91 }
92 },
93 { .is_last = 1 }
94 }
95 },
96 {
97 { Tmbrlen, TST_LOC_eucJP },
98 {
99 { /*----------------- #01 -----------------*/
100 {
101 {
102 { 1, "\317\302", 1, 1, 1 },
103 { 0, "", 0, 1, 0 },
104 { 1, "\317\302", USE_MBCURMAX, 1, 1 },
105 }
106 },
107 {
108 {
109 { 0, 1, -2, },
110 { 0, 1, -1, },
111 { 0, 1, 2, },
112 }
113 }
114 },
115 { /*----------------- #02 -----------------*/
116 {
117 {
118 { 1, "\317", 1, 1, 0 },
119 { 1, "\302", 1, 1, 0 },
120 { 1, "\317\302", USE_MBCURMAX, 0, 0 },
121 }
122 },
123 {
124 {
125 { 0, 1, -2, },
126 /* XXX ISO C explicitly says that the return value does not
127 XXX reflect the bytes contained in the state. */
128 { 0, 1, +1, },
129 { 0, 1, 2, },
130 }
131 }
132 },
133 { /*----------------- #03 -----------------*/
134 {
135 {
136 { 1, "\216\217", 0, 0, 0 },
137 { 1, "\216\217", 1, 0, 0 },
138 { 1, "\216\217", USE_MBCURMAX, 0, 0 },
139 }
140 },
141 {
142 {
143 { 0, 1, -2, },
144 { 0, 1, -2, },
145 { EILSEQ, 1, -1, },
146 }
147 }
148 },
149 { .is_last = 1 }
150 }
151 },
152 {
153 { Tmbrlen, TST_LOC_end }
154 }
155};
156

source code of glibc/localedata/tests-mbwc/dat_mbrlen.c