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 
19 TST_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