diff options
Diffstat (limited to 'test/locale-mbwc/dat_mbrlen.c')
-rw-r--r-- | test/locale-mbwc/dat_mbrlen.c | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/test/locale-mbwc/dat_mbrlen.c b/test/locale-mbwc/dat_mbrlen.c new file mode 100644 index 000000000..63ae19fb2 --- /dev/null +++ b/test/locale-mbwc/dat_mbrlen.c @@ -0,0 +1,222 @@ +/* + * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY + * + * FILE: dat_mbrlen.c + * + * MBRLEN: size_t mbrlen (const char *s, size_t n, mbstate_t *ps); + */ + +/* + * NOTE: + * (1) A mbstate object is initialized for + * every new data record by the test program. + * + * (2) USE_MBCURMAX is defined as a value of 99. + * + */ + + +TST_MBRLEN tst_mbrlen_loc [] = { + { + { Tmbrlen, TST_LOC_de }, + { + { /*----------------- #01 -----------------*/ + { + { + { 1, "", 0, 0, 0 }, + { 1, "", 1, 0, 0 }, + { 1, "\300", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, 0, }, + { 0, 1, 0, }, + { 0, 1, 1, }, + } + } + }, + { /*----------------- #02 -----------------*/ + { + { + { 1, "\300\001", 0, 0, 0 }, + { 1, "\300\001", 1, 0, 0 }, + { 1, "\317\001", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, 0, }, + { 0, 1, 1, }, + { 0, 1, 1, }, + } + } + }, + { .is_last = 1 } + } + }, + { + { Tmbrlen, TST_LOC_enUS }, + { + { /*----------------- #01 -----------------*/ + { + { + { 1, "A", 0, 0, 0 }, + { 1, "A", 1, 0, 0 }, + { 1, "A", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, 0, }, + { 0, 1, 1, }, + { 0, 1, 1, }, + } + } + }, + { /*----------------- #02 -----------------*/ + { + { + { 1, "\317\001", 0, 1, 0 }, + { 1, "\317\001", 1, 1, 0 }, + { 1, "\317\001", USE_MBCURMAX, 1, 0 }, + } + }, + { + { + { 0, 1, 0, }, + { EILSEQ, 1, -1, }, + { EILSEQ, 1, -1, }, + } + } + }, + { .is_last = 1 } + } + }, +#if 0 + { + { Tmbrlen, TST_LOC_eucJP }, + { + { /*----------------- #01 -----------------*/ + { + { + { 1, "\317\302", 1, 1, 1 }, + { 0, "", 0, 1, 0 }, + { 1, "\317\302", USE_MBCURMAX, 1, 1 }, + } + }, + { + { + { 0, 1, -2, }, + { 0, 1, -1, }, + { 0, 1, 2, }, + } + } + }, + { /*----------------- #02 -----------------*/ + { + { + { 1, "\317", 1, 1, 0 }, + { 1, "\302", 1, 1, 0 }, + { 1, "\317\302", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, -2, }, +#ifdef SHOJI_IS_RIGHT + { 0, 1, +2, }, +#else + /* XXX ISO C explicitly says that the return value does not + XXX reflect the bytes contained in the state. */ + { 0, 1, +1, }, +#endif + { 0, 1, 2, }, + } + } + }, + { /*----------------- #03 -----------------*/ + { + { + { 1, "\216\217", 0, 0, 0 }, + { 1, "\216\217", 1, 0, 0 }, + { 1, "\216\217", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, 0, }, + { 0, 1, -2, }, + { EILSEQ, 1, -1, }, + } + } + }, + { .is_last = 1 } + } + }, +#else + { + { Tmbrlen, TST_LOC_ja_UTF8 }, + { + { /*----------------- #01 -----------------*/ + { + { + { 1, "\345\222\214", 1, 1, 1 }, + { 0, "", 0, 1, 0 }, + { 1, "\345\222\214", USE_MBCURMAX, 1, 1 }, + } + }, + { + { + { 0, 1, -2, }, + { 0, 1, -1, }, + { 0, 1, 3, }, + } + } + }, + { /*----------------- #02 -----------------*/ + { + { + { 1, "\317", 1, 1, 0 }, + { 1, "\266", 1, 1, 0 }, + { 1, "\345\222\214", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, -2, }, +#ifdef SHOJI_IS_RIGHT + { 0, 1, +2, }, +#else + /* XXX ISO C explicitly says that the return value does not + XXX reflect the bytes contained in the state. */ + { 0, 1, +1, }, +#endif + { 0, 1, 3, }, + } + } + }, + { /*----------------- #03 -----------------*/ + { + { + { 1, "\302\303", 0, 0, 0 }, + { 1, "\302\303", 1, 0, 0 }, + { 1, "\302\303", USE_MBCURMAX, 0, 0 }, + } + }, + { + { + { 0, 1, 0, }, + { 0, 1, -2, }, + { EILSEQ, 1, -1, }, + } + } + }, + { .is_last = 1 } + } + }, +#endif + { + { Tmbrlen, TST_LOC_end } + } +}; |