| /* |
| * 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 } |
| } |
| }, |
| { |
| { 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 } |
| } |
| }, |
| { |
| { Tmbrlen, TST_LOC_end } |
| } |
| }; |