140 lines
3.0 KiB
C
140 lines
3.0 KiB
C
/*
|
|
* 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 }
|
|
}
|
|
},
|
|
{
|
|
{ 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 }
|
|
}
|
|
},
|
|
{
|
|
{ Tmbstowcs, TST_LOC_end }
|
|
}
|
|
};
|