1 /* 2 * TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY 3 * 4 * FILE: dat_wcswidth.c 5 * 6 * WCSWIDTH: int wcswidth (const wchar_t *ws, size_t n); 7 */ 8 9 TST_WCSWIDTH tst_wcswidth_loc [] = { 10 { 11 { Twcswidth, TST_LOC_de }, 12 { 13 { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 0 }, /* 01 */ 14 /*expect*/ { 0,1,0 }, 15 }, 16 { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 1 }, /* 02 */ 17 /*expect*/ { 0,1,1 }, 18 }, 19 { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 2 }, /* 03 */ 20 /*expect*/ { 0,1,2 }, 21 }, 22 { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 3 }, /* 04 */ 23 /*expect*/ { 0,1,3 }, 24 }, 25 { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 }, 4 }, /* 05 */ 26 /*expect*/ { 0,1,3 }, 27 }, 28 { /*input.*/ { { 0x0000 }, 1 }, /* 06 */ 29 /*expect*/ { 0,1,0 }, 30 }, 31 { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 2 }, /* 07 */ 32 /*expect*/ { 0,1,-1 }, 33 }, 34 { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 1 }, /* 08 */ 35 /*expect*/ { 0,1,1 }, 36 }, 37 { /*input.*/ { { 0x00C1,0x0001,0x0000 }, 2 }, /* 09 */ 38 /*expect*/ { 0,1,-1 }, 39 }, 40 { /*input.*/ { { 0x00C1,0x0092,0x0000 }, 2 }, /* 10 */ 41 /*expect*/ { 0,1,-1 }, 42 }, 43 { /*input.*/ { { 0x00C1,0x0020,0x0000 }, 2 }, /* 11 */ 44 /*expect*/ { 0,1,2 }, 45 }, 46 { /*input.*/ { { 0x00C1,0x0021,0x0000 }, 2 }, /* 12 */ 47 /*expect*/ { 0,1,2 }, 48 }, 49 { /*input.*/ { { 0x00C1,0x007E,0x0000 }, 2 }, /* 13 */ 50 /*expect*/ { 0,1,2 }, 51 }, 52 { /*input.*/ { { 0x00C1,0x007F,0x0000 }, 2 }, /* 14 */ 53 /*expect*/ { 0,1,-1 }, 54 }, 55 { /*input.*/ { { 0x00C1,0x0080,0x0000 }, 2 }, /* 15 */ 56 /*expect*/ { 0,1,-1 }, 57 }, 58 { /*input.*/ { { 0x00C1,0x00A0,0x0000 }, 2 }, /* 16 */ 59 /*expect*/ { 0,1,2 }, 60 }, 61 { /*input.*/ { { 0x00C1,0x00A1,0x0000 }, 2 }, /* 17 */ 62 /*expect*/ { 0,1,2 }, 63 }, 64 { /*input.*/ { { 0x00C1,0x00FF,0x0000 }, 2 }, /* 18 */ 65 /*expect*/ { 0,1,2 }, 66 }, 67 { /*input.*/ { { 0x00C1,0x3042,0x0000 }, 2 }, /* 19 */ 68 /*expect*/ { 0,1,-1 }, 69 }, 70 { /*input.*/ { { 0x00C1,0x3044,0x0000 }, 2 }, /* 20 */ 71 /*expect*/ { 0,1,-1 }, 72 }, 73 { .is_last = 1 } 74 } 75 }, 76 { 77 { Twcswidth, TST_LOC_enUS }, 78 { 79 { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 0 }, /* 01 */ 80 /*expect*/ { 0,1,0 }, 81 }, 82 { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 1 }, /* 02 */ 83 /*expect*/ { 0,1,1 }, 84 }, 85 { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 2 }, /* 03 */ 86 /*expect*/ { 0,1,2 }, 87 }, 88 { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 }, 3 }, /* 04 */ 89 /*expect*/ { 0,1,-1 }, 90 }, 91 { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 }, 4 }, /* 05 */ 92 /*expect*/ { 0,1,3 }, 93 }, 94 { /*input.*/ { { 0x0000 }, 1 }, /* 06 */ 95 /*expect*/ { 0,1,0 }, 96 }, 97 { /*input.*/ { { 0x0041,0x0001,0x0000 }, 2 }, /* 07 */ 98 /*expect*/ { 0,1,-1 }, 99 }, 100 { /*input.*/ { { 0x0041,0x0001,0x0000 }, 1 }, /* 08 */ 101 /*expect*/ { 0,1,1 }, 102 }, 103 { /*input.*/ { { 0x0041,0x0001,0x0000 }, 2 }, /* 09 */ 104 /*expect*/ { 0,1,-1 }, 105 }, 106 { /*input.*/ { { 0x0041,0x0092,0x0000 }, 2 }, /* 10 */ 107 /*expect*/ { 0,1,-1 }, 108 }, 109 { /*input.*/ { { 0x0041,0x0020,0x0000 }, 2 }, /* 11 */ 110 /*expect*/ { 0,1,2 }, 111 }, 112 { /*input.*/ { { 0x0041,0x0021,0x0000 }, 2 }, /* 12 */ 113 /*expect*/ { 0,1,2 }, 114 }, 115 { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 13 */ 116 /*expect*/ { 0,1,2 }, 117 }, 118 { /*input.*/ { { 0x0041,0x007F,0x0000 }, 2 }, /* 14 */ 119 /*expect*/ { 0,1,-1 }, 120 }, 121 { /*input.*/ { { 0x0041,0x0080,0x0000 }, 2 }, /* 15 */ 122 /*expect*/ { 0,1,-1 }, 123 }, 124 { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */ 125 /*expect*/ { 0,1,-1 }, 126 }, 127 { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 17 */ 128 /*expect*/ { 0,1,2 }, 129 }, 130 { /*input.*/ { { 0x0041,0x0020,0x0000 }, 2 }, /* 18 */ 131 /*expect*/ { 0,1,2 }, 132 }, 133 { /*input.*/ { { 0x0041,0x3042,0x0000 }, 2 }, /* 19 */ 134 /*expect*/ { 0,1,-1 }, 135 }, 136 { /*input.*/ { { 0x0041,0x3044,0x0000 }, 2 }, /* 20 */ 137 /*expect*/ { 0,1,-1 }, 138 }, 139 { .is_last = 1 } 140 } 141 }, 142 { 143 { Twcswidth, TST_LOC_eucJP }, 144 { 145 { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 0 }, /* 01 */ 146 /*expect*/ { 0,1,0 }, 147 }, 148 { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 1 }, /* 02 */ 149 /*expect*/ { 0,1,2 }, 150 }, 151 { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 2 }, /* 03 */ 152 /*expect*/ { 0,1,4 }, 153 }, 154 { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 3 }, /* 04 */ 155 /*expect*/ { 0,1,6 }, 156 }, 157 { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 }, 4 }, /* 05 */ 158 /*expect*/ { 0,1,6 }, 159 }, 160 { /*input.*/ { { 0x0000 }, 1 }, /* 06 */ 161 /*expect*/ { 0,1,0 }, 162 }, 163 { /*input.*/ { { 0x008E,0x0001,0x0000 }, 2 }, /* 07 */ 164 /*expect*/ { 0,1,-1 }, 165 }, 166 { /*input.*/ { { 0x3041,0x008E,0x0000 }, 1 }, /* 08 */ 167 /*expect*/ { 0,1,2 }, 168 }, 169 { /*input.*/ { { 0x3041,0x008E,0x0000 }, 2 }, /* 09 */ 170 /*expect*/ { 0,1,-1 }, 171 }, 172 { /*input.*/ { { 0x3041,0x0001,0x0000 }, 2 }, /* 10 */ 173 /*expect*/ { 0,1,-1 }, 174 }, 175 { /*input.*/ { { 0x3041,0x3000,0x0000 }, 2 }, /* 11 */ 176 /*expect*/ { 0,1,4 }, 177 }, 178 { /*input.*/ { { 0x0041,0x0021,0x0000 }, 2 }, /* 12 */ 179 /*expect*/ { 0,1,2 }, 180 }, 181 { /*input.*/ { { 0x0041,0x007E,0x0000 }, 2 }, /* 13 */ 182 /*expect*/ { 0,1,2 }, 183 }, 184 { /*input.*/ { { 0x0041,0x007F,0x0000 }, 2 }, /* 14 */ 185 /*expect*/ { 0,1,-1 }, 186 }, 187 { /*input.*/ { { 0x0041,0x0080,0x0000 }, 2 }, /* 15 */ 188 /*expect*/ { 0,1,-1 }, 189 }, 190 { /*input.*/ { { 0x0041,0x00A0,0x0000 }, 2 }, /* 16 */ 191 /*expect*/ { 0,1,-1 }, 192 }, 193 #ifdef NO_WAIVER 194 /* <NO_WAIVER> */ /* returns 3 */ 195 { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */ 196 /*expect*/ { 0,1,-1 }, 197 }, 198 #else 199 /* XXX U00A1 is valid -> /x8f/xa2/xc4 in JIS X 0212 */ 200 { /*input.*/ { { 0x0041,0x00A1,0x0000 }, 2 }, /* 17 */ 201 /*expect*/ { 0,1,3 }, 202 }, 203 #endif 204 { /*input.*/ { { 0x0041,0xFF71,0x0000 }, 2 }, /* 18 */ 205 /*expect*/ { 0,1,2 }, 206 }, 207 { /*input.*/ { { 0x0041,0x3042,0x0000 }, 2 }, /* 19 */ 208 /*expect*/ { 0,1,3 }, 209 }, 210 { /*input.*/ { { 0x0041,0x3044,0x0000 }, 2 }, /* 20 */ 211 /*expect*/ { 0,1,3 }, 212 }, 213 { .is_last = 1 } 214 } 215 }, 216 { 217 { Twcswidth, TST_LOC_end } 218 } 219 }; 220