/* * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY * * FILE: dat_mbstowcs.c * * MBSTOWCS: size_t mbstowcs (wchar_t *ws, char *s, size_t n); */ #include <limits.h> TST_MBSTOWCS tst_mbstowcs_loc [] = { { { Tmbstowcs, TST_LOC_de }, { { /*----------------- #01 -----------------*/ { { { 1, 1, "ABC", 4 }, { 1, 1, "ABC", 3 }, { 1, 1, "ABC", 2 }, } }, { { { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } }, { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } }, { 0,1,2, { 0x0041,0x0042,0x0043,0x0000 } }, } } }, { /*----------------- #02 -----------------*/ { { { 1, 1, "ABC", 4 }, { 1, 1, "", 1 }, { 0, 1, "ABC", 4 }, } }, { { { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } }, { 0,1,0, { 0x0000 } }, { 0,1,3, { 0x0000 } }, } } }, { .is_last = 1 } } }, { { Tmbstowcs, TST_LOC_enUS }, { { /*----------------- #01 -----------------*/ { { { 1, 1, "ABC", 4 }, { 1, 1, "ABC", 3 }, { 1, 1, "ABC", 2 }, } }, { { { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } }, { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } }, { 0,1,2, { 0x0041,0x0042,0x0043,0x0000 } }, } } }, { /*----------------- #02 -----------------*/ { { { 1, 1, "ABC", 4 }, { 1, 1, "", 1 }, { 0, 1, "ABC", 4 }, } }, { { { 0,1,3, { 0x0041,0x0042,0x0043,0x0000 } }, { 0,1,0, { 0x0000 } }, { 0,1,3, { 0x0000 } }, } } }, { .is_last = 1 } } }, #if 0 { { Tmbstowcs, TST_LOC_eucJP }, { { /*----------------- #01 -----------------*/ { { { 1, 1, "\244\242\244\244\244\246ABC", 7 }, { 1, 1, "\244\242\244\244\244\246ABC", 6 }, { 1, 1, "\244\242\244\244\244\246ABC", 4 }, } }, { { { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }}, { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }}, { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } }, } } }, { /*----------------- #02 -----------------*/ { { #ifdef SHOJI_IS_RIGHT /* XXX I really don't understand the first and third line. the result of the first line is the same as the first in the last test (i.e., returns 6). Also, the third test will simply convert everything. */ { 1, 1, "\244\242\244\244\244\246ABC", 7 }, { 1, 1, "", 1 }, { 0, 1, "\244\242\244\244\244\246ABC", 7 }, #else { 1, 1, "\244\242\244\244\244\246ABC", 4 }, { 1, 1, "", 1 }, { 0, 1, "\244\242\244\244\244\246ABC", 0 }, #endif } }, { { { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } }, { 0,1,0, { 0x0000 } }, { 0,1,6, { 0x0000 } }, } } }, { .is_last = 1 } } }, #else { { Tmbstowcs, TST_LOC_ja_UTF8 }, { { /*----------------- #01 -----------------*/ { { { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 7 }, { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 6 }, { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 4 }, } }, { { { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }}, { 0,1,6, { 0x3042,0x3044,0x3046,0x0041,0x0042,0x0043,0x0000 }}, { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } }, } } }, { /*----------------- #02 -----------------*/ { { #ifdef SHOJI_IS_RIGHT /* XXX I really don't understand the first and third line. the result of the first line is the same as the first in the last test (i.e., returns 6). Also, the third test will simply convert everything. */ { 1, 1, "\244\242\244\244\244\246ABC", 7 }, { 1, 1, "", 1 }, { 0, 1, "\244\242\244\244\244\246ABC", 7 }, #else { 1, 1, "\343\201\202\343\201\204\343\201\206ABC", 4 }, { 1, 1, "", 1 }, { 0, 1, "\343\201\202\343\201\204\343\201\206ABC", 7 }, #endif } }, { { { 0,1,4, { 0x3042,0x3044,0x3046,0x0041,0x0000 } }, { 0,1,0, { 0x0000 } }, { 0,1,6, { 0x0000 } }, } } }, { .is_last = 1 } } }, #endif { { Tmbstowcs, TST_LOC_end } } };