Back to index

glibc  2.9
dat_mbrlen.c
Go to the documentation of this file.
00001 /*
00002  *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
00003  *
00004  *      FILE: dat_mbrlen.c
00005  *
00006  *      MBRLEN:  size_t mbrlen (const char *s, size_t n, mbstate_t *ps);
00007  */
00008 
00009 /*
00010  *  NOTE:
00011  *       (1) A mbstate object is initialized for
00012  *           every new data record by the test program.
00013  *
00014  *       (2) USE_MBCURMAX is defined as a value of 99.
00015  *
00016  */
00017 
00018 
00019 TST_MBRLEN tst_mbrlen_loc [] = {
00020   {
00021     { Tmbrlen, TST_LOC_de },
00022     {
00023       { /*----------------- #01 -----------------*/
00024        {
00025          {
00026            { 1, "",     0,            0, 0 },
00027            { 1, "",     1,            0, 0 },
00028            { 1, "\300",        USE_MBCURMAX,   0, 0 },
00029          }
00030        },
00031        {
00032          {
00033            { 0,             1,  0,             },
00034            { 0,             1,  0,             },
00035            { 0,             1,  1,             },
00036          }
00037        }
00038       },
00039       { /*----------------- #02 -----------------*/
00040        {
00041          {
00042            { 1, "\300\001",   0,             0, 0 },
00043            { 1, "\300\001",   1,             0, 0 },
00044            { 1, "\317\001",   USE_MBCURMAX,   0, 0 },
00045          }
00046        },
00047        {
00048          {
00049            { 0,             1,  0,             },
00050            { 0,             1,  1,             },
00051            { 0,             1,  1,             },
00052          }
00053        }
00054       },
00055       { .is_last = 1 }
00056     }
00057   },
00058   {
00059     { Tmbrlen, TST_LOC_enUS },
00060     {
00061       { /*----------------- #01 -----------------*/
00062        {
00063          {
00064            { 1, "A",    0,            0, 0 },
00065            { 1, "A",    1,            0, 0 },
00066            { 1, "A",    USE_MBCURMAX,   0, 0 },
00067          }
00068        },
00069        {
00070          {
00071            { 0,             1,  0,             },
00072            { 0,             1,  1,             },
00073            { 0,             1,  1,             },
00074          }
00075        }
00076       },
00077       { /*----------------- #02 -----------------*/
00078        {
00079          {
00080            { 1, "\317\001",   0,             1, 0 },
00081            { 1, "\317\001",   1,             1, 0 },
00082            { 1, "\317\001",   USE_MBCURMAX,   1, 0 },
00083          }
00084        },
00085        {
00086          {
00087            { 0,             1,  0,             },
00088            { EILSEQ, 1, -1,             },
00089            { EILSEQ, 1, -1,             },
00090          }
00091        }
00092       },
00093       { .is_last = 1 }
00094     }
00095   },
00096   {
00097     { Tmbrlen, TST_LOC_eucJP },
00098     {
00099       { /*----------------- #01 -----------------*/
00100        {
00101          {
00102            { 1, "\317\302",   1,             1, 1 },
00103            { 0, "",         0,               1, 0 },
00104            { 1, "\317\302",   USE_MBCURMAX,         1, 1 },
00105          }
00106        },
00107        {
00108          {
00109            { 0,             1, -2,             },
00110            { 0,             1, -1,             },
00111            { 0,             1,  2,             },
00112          }
00113        }
00114       },
00115       { /*----------------- #02 -----------------*/
00116        {
00117          {
00118            { 1, "\317",        1,            1, 0 },
00119            { 1, "\302",        1,            1, 0 },
00120            { 1, "\317\302",   USE_MBCURMAX,   0, 0 },
00121          }
00122        },
00123        {
00124          {
00125            { 0,             1, -2,             },
00126 #ifdef SHOJI_IS_RIGHT
00127            { 0,             1, +2,             },
00128 #else
00129            /* XXX ISO C explicitly says that the return value does not
00130               XXX reflect the bytes contained in the state.  */
00131            { 0,             1, +1,             },
00132 #endif
00133            { 0,             1,  2,             },
00134          }
00135        }
00136       },
00137       { /*----------------- #03 -----------------*/
00138        {
00139          {
00140            { 1, "\216\217",   0,             0, 0 },
00141            { 1, "\216\217",   1,             0, 0 },
00142            { 1, "\216\217",   USE_MBCURMAX,   0, 0 },
00143          }
00144        },
00145        {
00146          {
00147            { 0,             1,  0,             },
00148            { 0,             1, -2,             },
00149            { EILSEQ, 1, -1,             },
00150          }
00151        }
00152       },
00153       { .is_last = 1 }
00154     }
00155   },
00156   {
00157     { Tmbrlen, TST_LOC_end }
00158   }
00159 };