1 /* 2 * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY 3 * 4 * FILE: dat_mbrlen.c 5 * 6 * MBRLEN: size_t mbrlen (const char *s, size_t n, mbstate_t *ps); 7 */ 8 9 /* 10 * NOTE: 11 * (1) A mbstate object is initialized for 12 * every new data record by the test program. 13 * 14 * (2) USE_MBCURMAX is defined as a value of 99. 15 * 16 */ 17 18 19 TST_MBRLEN tst_mbrlen_loc [] = { 20 { 21 { Tmbrlen, TST_LOC_de }, 22 { 23 { /*----------------- #01 -----------------*/ 24 { 25 { 26 { 1, "", 0, 0, 0 }, 27 { 1, "", 1, 0, 0 }, 28 { 1, "\300", USE_MBCURMAX, 0, 0 }, 29 } 30 }, 31 { 32 { 33 { 0, 1, -2, }, 34 { 0, 1, 0, }, 35 { 0, 1, 1, }, 36 } 37 } 38 }, 39 { /*----------------- #02 -----------------*/ 40 { 41 { 42 { 1, "\300\001", 0, 0, 0 }, 43 { 1, "\300\001", 1, 0, 0 }, 44 { 1, "\317\001", USE_MBCURMAX, 0, 0 }, 45 } 46 }, 47 { 48 { 49 { 0, 1, -2, }, 50 { 0, 1, 1, }, 51 { 0, 1, 1, }, 52 } 53 } 54 }, 55 { .is_last = 1 } 56 } 57 }, 58 { 59 { Tmbrlen, TST_LOC_enUS }, 60 { 61 { /*----------------- #01 -----------------*/ 62 { 63 { 64 { 1, "A", 0, 0, 0 }, 65 { 1, "A", 1, 0, 0 }, 66 { 1, "A", USE_MBCURMAX, 0, 0 }, 67 } 68 }, 69 { 70 { 71 { 0, 1, -2, }, 72 { 0, 1, 1, }, 73 { 0, 1, 1, }, 74 } 75 } 76 }, 77 { /*----------------- #02 -----------------*/ 78 { 79 { 80 { 1, "\317\001", 0, 1, 0 }, 81 { 1, "\317\001", 1, 1, 0 }, 82 { 1, "\317\001", USE_MBCURMAX, 1, 0 }, 83 } 84 }, 85 { 86 { 87 { 0, 1, -2, }, 88 { EILSEQ, 1, -1, }, 89 { EILSEQ, 1, -1, }, 90 } 91 } 92 }, 93 { .is_last = 1 } 94 } 95 }, 96 { 97 { Tmbrlen, TST_LOC_eucJP }, 98 { 99 { /*----------------- #01 -----------------*/ 100 { 101 { 102 { 1, "\317\302", 1, 1, 1 }, 103 { 0, "", 0, 1, 0 }, 104 { 1, "\317\302", USE_MBCURMAX, 1, 1 }, 105 } 106 }, 107 { 108 { 109 { 0, 1, -2, }, 110 { 0, 1, -1, }, 111 { 0, 1, 2, }, 112 } 113 } 114 }, 115 { /*----------------- #02 -----------------*/ 116 { 117 { 118 { 1, "\317", 1, 1, 0 }, 119 { 1, "\302", 1, 1, 0 }, 120 { 1, "\317\302", USE_MBCURMAX, 0, 0 }, 121 } 122 }, 123 { 124 { 125 { 0, 1, -2, }, 126 /* XXX ISO C explicitly says that the return value does not 127 XXX reflect the bytes contained in the state. */ 128 { 0, 1, +1, }, 129 { 0, 1, 2, }, 130 } 131 } 132 }, 133 { /*----------------- #03 -----------------*/ 134 { 135 { 136 { 1, "\216\217", 0, 0, 0 }, 137 { 1, "\216\217", 1, 0, 0 }, 138 { 1, "\216\217", USE_MBCURMAX, 0, 0 }, 139 } 140 }, 141 { 142 { 143 { 0, 1, -2, }, 144 { 0, 1, -2, }, 145 { EILSEQ, 1, -1, }, 146 } 147 } 148 }, 149 { .is_last = 1 } 150 } 151 }, 152 { 153 { Tmbrlen, TST_LOC_end } 154 } 155 }; 156