mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 15:30:07 +00:00
e017830580
2001-05-21 Bruno Haible <haible@clisp.cons.org> * wcsmbs/mbrtowc.c (mbrtowc): Remove local variable 'flush', always use 0 instead, and rely on the converter to do the flush. * wcsmbs/tst-mbrtowc.c (utf8_test_1): New function, taken from utf8_test. (utf8_test_2, utf8_test_3): New function. (utf8_test): Call utf8_test_1, utf8_test_2, utf8_test_3.
160 lines
2.8 KiB
C
160 lines
2.8 KiB
C
/*
|
|
* 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 }
|
|
}
|
|
};
|