2 * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
6 * MBLEN: int mblen (char *s, size_t n);
12 * int mblen (char *s, size_t n);
14 * where n: a maximum number of bytes
16 * return - the number of bytes
20 * o When you feed a null pointer for a string (s) to the function,
21 * set s_flg=0 instead of putting just a 'NULL' there.
22 * Even if you set a 'NULL', it doens't mean a NULL pointer.
24 * o When s is a null pointer, the function checks state dependency.
26 * state-dependent encoding - return NON-zero
27 * state-independent encoding - return 0
29 * If state-dependent encoding is expected, set
31 * s_flg = 0, ret_flg = 0, ret_val = +1
33 * If state-independent encoding is expected, set
35 * s_flg = 0, ret_flg = 0, ret_val = 0
38 * When you set ret_flg=1, the test program simply compares an
39 * actual return value with an expected value. You can check
40 * state-independent case (return value is 0) in that way, but
41 * you can not check state-dependent case. So when you check
42 * state- dependency in this test function: tst_mblen(), set
43 * ret_flg=0 always. It's a special case, and the test
44 * function takes care of it.
48 * { 0, 0 }, { 0, 0, 0, x }
50 * not used ret_val: 0/+1
54 TST_MBLEN tst_mblen_loc
[] = {
56 { Tmblen
, TST_LOC_de
},
58 /* 01: a character. */
59 { { 1, "\300", USE_MBCURMAX
}, { 0, 1, 1 } },
60 /* 02: a character. */
61 { { 1, "\309", USE_MBCURMAX
}, { 0, 1, 1 } },
62 /* 03: a character + an invalid byte. */
63 { { 1, "Z\204", USE_MBCURMAX
}, { 0, 1, +1 } },
64 /* 04: control/invalid characters. */
65 { { 1, "\177\000", USE_MBCURMAX
}, { 0, 1, +1 } },
66 /* 05: a null string. */
67 { { 1, "", USE_MBCURMAX
}, { 0, 1, 0 } },
68 /* 06: a null pointer. */
69 { { 0, "", USE_MBCURMAX
}, { 0, 0, 0 } },
75 { Tmblen
, TST_LOC_enUS
},
77 /* 01: a character. */
78 { { 1, "A", USE_MBCURMAX
}, { 0, 1, 1 } },
79 /* 02: a character. */
80 { { 1, "a", USE_MBCURMAX
}, { 0, 1, 1 } },
81 /* 03: a character + an invalid byte. */
82 { { 1, "Z\204", USE_MBCURMAX
}, { 0, 1, +1 } },
83 /* 04: control/invalid characters. */
84 { { 1, "\177\000", USE_MBCURMAX
}, { 0, 1, +1 } },
85 /* 05: a null string. */
86 { { 1, "", USE_MBCURMAX
}, { 0, 1, 0 } },
87 /* 06: a null pointer. */
88 { { 0, "", USE_MBCURMAX
}, { 0, 0, 0 } },
94 { Tmblen
, TST_LOC_eucJP
},
96 /* 01: a character. */
97 { { 1, "\264\301", USE_MBCURMAX
}, { 0, 1, 2 } },
98 /* 02: a character. */
99 { { 1, "\216\261", USE_MBCURMAX
}, { 0, 1, 2 } },
100 /* 03: a character + an invalid byte. */
101 { { 1, "\260\241\200", USE_MBCURMAX
}, { 0, 1, 2 } },
102 /* 04: control/invalid characters. */
103 { { 1, "\377\202", USE_MBCURMAX
}, { EILSEQ
, 1, -1 } },
104 /* 05: a null string. */
105 { { 1, "", USE_MBCURMAX
}, { 0, 1, 0 } },
106 /* 06: a null pointer. */
107 { { 0, "", USE_MBCURMAX
}, { 0, 0, 0 } },
113 { Tmblen
, TST_LOC_end
}