Changeset 434
- Timestamp:
- 07/01/10 07:47:17 (2 months ago)
- Files:
-
- trunk/functions/stdio/fscan_sources.incl (modified) (1 diff)
- trunk/functions/stdio/scan_test.h (added)
- trunk/functions/stdio/scanf_testcases.incl (modified) (175 diffs)
- trunk/functions/stdio/sscan_sources.incl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/functions/stdio/fscan_sources.incl
r433 r434 41 41 42 42 /* fscan */ 43 #define TESTSCAN( result, count, source, offset, format,... ) \43 #define TESTSCAN( result, count, source, offset, ... ) \ 44 44 do \ 45 45 { \ 46 46 int n = -1; \ 47 47 TESTCASE( fseek( source, offset, SEEK_SET ) == 0 ); \ 48 TESTCASE( SCANFUNC( source, format "%n", __VA_ARGS__, &n ) == result ); \ 49 TESTCASE( n == count ); \ 48 int res = SCANFUNC( source, __VA_ARGS__ ); \ 49 if ( res != result ) \ 50 { \ 51 rc += 1; \ 52 printf( "FAILED: " __FILE__ ", line %d - expected result %d, got %d\n", __LINE__, result, res ); \ 53 } \ 54 if ( n != count ) \ 55 { \ 56 rc += 1; \ 57 printf( "FAILED: " __FILE__ ", line %d - expected count %d, got %d\n", __LINE__, count, n ); \ 58 } \ 50 59 } while ( 0 ) 51 60 61 #define SCAN( format ) format "%n", &n 62 #define SCANPARMS( format, ... ) format "%n", __VA_ARGS__, &n 63 64 #define _PDCLIB_FSCAN 65 trunk/functions/stdio/scanf_testcases.incl
r433 r434 5 5 // matching six characters literally 6 6 // should report six characters read 7 TESTSCAN( 0, 6, general, 0, "123456");7 TESTSCAN( 0, 6, general, 0, SCAN( "123456" ) ); 8 8 } 9 9 { 10 10 // matching a character, three whitespace chars, and another character 11 11 // should report five characters read 12 TESTSCAN( 0, 5, general, 30, "1 5");12 TESTSCAN( 0, 5, general, 30, SCAN( "1 5" ) ); 13 13 } 14 14 { 15 15 // matching three characters, not matching whitespaces, and matching another three characters 16 16 // should report six characters matched 17 TESTSCAN( 0, 6, general, 0, "123 456");17 TESTSCAN( 0, 6, general, 0, SCAN( "123 456" ) ); 18 18 } 19 19 { 20 20 // matching a character, two '%' characters, and two whitespaces 21 21 // should report five characters matched 22 TESTSCAN( 0, 5, general, 34, "5%%%% ");22 TESTSCAN( 0, 5, general, 34, SCAN( "5%%%% " ) ); 23 23 } 24 24 { 25 25 // seeking to last character in file, trying to match that char and a whitespace 26 26 // should report one character matched and EOF 27 TESTSCAN( 0, 1, general, 39, "0 ");27 TESTSCAN( 0, 1, general, 39, SCAN( "0 " ) ); 28 28 } 29 29 { 30 30 // seeking to end of file, trying to match a -1 31 31 // should report error, not executing %n 32 TESTSCAN( 0, 1, general, 40, "\377" );32 TESTSCAN( -1, -1, general, 40, SCAN( "\377" ) ); /* FIXME */ 33 33 } 34 34 … … 40 40 // should report the characters read up to first zero 41 41 char buffer[ 8 ]; 42 #ifdef _PDCLIB_SSCAN 43 int count = 1; 44 char expected[] = "1\177\177\177\177\177\177\177"; 45 #else 46 int count = 7; 47 char expected[] = "1\0003-5+7"; 48 #endif 42 49 memset( buffer, '\177', 8 ); 43 TESTSCAN( 1, 1, general, 10, "%7c", buffer);44 CHECK_FALSE( memcmp( buffer, "1\177\177", 3) );50 TESTSCAN( 1, count, general, 10, SCANPARMS( "%7c", buffer ) ); 51 CHECK_FALSE( memcmp( buffer, expected, 7 ) ); 45 52 } 46 53 { … … 49 56 char buffer[ 2 ]; 50 57 memset( buffer, '\177', 2 ); 51 TESTSCAN( 1, 1, general, 19, "%c", buffer);58 TESTSCAN( 1, 1, general, 19, SCANPARMS( "%c", buffer ) ); 52 59 CHECK_FALSE( memcmp( buffer, "\377\177", 2 ) ); 53 60 } … … 57 64 char buffer[ 2 ]; 58 65 memset( buffer, '\177', 2 ); 59 TESTSCAN( 1, 1, general, 32, "%1c", buffer);66 TESTSCAN( 1, 1, general, 32, SCANPARMS( "%1c", buffer ) ); 60 67 CHECK_FALSE( memcmp( buffer, "\011\177", 2 ) ); 61 68 } … … 65 72 char buffer[ 2 ]; 66 73 memset( buffer, '\177', 2 ); 67 TESTSCAN( 1, 1, general, 39, "%2c", buffer);74 TESTSCAN( 1, 1, general, 39, SCANPARMS( "%2c", buffer ) ); 68 75 CHECK_FALSE( memcmp( buffer, "0\177", 2 ) ); 69 76 } … … 73 80 char buffer[ 2 ]; 74 81 memset( buffer, '\177', 2 ); 75 TESTSCAN( 1, 1, general, 39, "%1c", buffer);82 TESTSCAN( 1, 1, general, 39, SCANPARMS( "%1c", buffer ) ); 76 83 CHECK_FALSE( memcmp( buffer, "0\177", 2 ) ); 77 84 } … … 81 88 char buffer[ 2 ]; 82 89 memset( buffer, '\177', 2 ); 83 TESTSCAN( -1, -1, general, 40, "%1c", buffer);90 TESTSCAN( -1, -1, general, 40, SCANPARMS( "%1c", buffer ) ); 84 91 CHECK_FALSE( memcmp( buffer, "\177\177", 2 ) ); 85 92 } … … 91 98 // reading a whitespace-terminated integer 92 99 int i; 93 TESTSCAN( 1, 1, general, 20, "%d", &i);100 TESTSCAN( 1, 1, general, 20, SCANPARMS( "%d", &i ) ); 94 101 CHECK_EQUAL( i, 2 ); 95 102 } … … 97 104 // reading a -1 terminated integer 98 105 int i; 99 TESTSCAN( 1, 1, general, 18, "%d", &i);106 TESTSCAN( 1, 1, general, 18, SCANPARMS( "%d", &i ) ); 100 107 CHECK_EQUAL( i, 9 ); 101 108 } … … 103 110 // reading a EOF terminated integer 104 111 int i = -1; 105 TESTSCAN( 1, 1, general, 39, "%d", &i);112 TESTSCAN( 1, 1, general, 39, SCANPARMS( "%d", &i ) ); 106 113 CHECK_EQUAL( i, 0 ); 107 114 } … … 110 117 // should skip whitespaces 111 118 int i = -1; 112 TESTSCAN( 1, 3, general, 32, "%d", &i);119 TESTSCAN( 1, 3, general, 32, SCANPARMS( "%d", &i ) ); 113 120 CHECK_EQUAL( i, 5 ); 114 121 } … … 117 124 // should report matching failure 118 125 int i = 0; 119 TESTSCAN( 0, -1, general, 19, "%d", &i, &n ), 0);126 TESTSCAN( 0, -1, general, 19, SCANPARMS( "%d", &i ) ); 120 127 CHECK_EQUAL( i, 0 ); 121 128 } … … 124 131 // should report reading failure 125 132 int i = 0; 126 TESTSCAN( -1, -1, general, 40, "%d", &i, &n ), -1);133 TESTSCAN( -1, -1, general, 40, SCANPARMS( "%d", &i ) ); 127 134 CHECK_EQUAL( i, 0 ); 128 135 } … … 130 137 // reading a '-'-prefixed integer 131 138 int i; 132 TESTSCAN( 1, 2, general, 13, "%d", &i);139 TESTSCAN( 1, 2, general, 13, SCANPARMS( "%d", &i ) ); 133 140 CHECK_EQUAL( i, -5 ); 134 141 } … … 136 143 // reading a '+'-prefixed integer 137 144 int i; 138 TESTSCAN( 1, 2, general, 15, "%d", &i);145 TESTSCAN( 1, 2, general, 15, SCANPARMS( "%d", &i ) ); 139 146 CHECK_EQUAL( i, 7 ); 140 147 } … … 144 151 // reading 0, d 145 152 signed char i = -1; 146 TESTSCAN( 1, 1, decimal, 1, "%hhd", &i);153 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%hhd", &i ) ); 147 154 CHECK_EQUAL( i, 0 ); 148 155 } … … 150 157 // reading -0, d 151 158 signed char i = -1; 152 TESTSCAN( 1, 2, decimal, 0, "%hhd", &i);159 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%hhd", &i ) ); 153 160 CHECK_EQUAL( i, 0 ); 154 161 } … … 156 163 // reading +0, d 157 164 signed char i = -1; 158 TESTSCAN( 1, 2, decimal, 3, "%hhd", &i);165 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%hhd", &i ) ); 159 166 CHECK_EQUAL( i, 0 ); 160 167 } … … 162 169 // reading -128, d 163 170 signed char i = -1; 164 TESTSCAN( 1, 4, decimal, 6, "%hhd", &i);171 TESTSCAN( 1, 4, decimal, 6, SCANPARMS( "%hhd", &i ) ); 165 172 CHECK_EQUAL( i, -128 ); 166 173 } … … 168 175 // reading 127, d 169 176 signed char i = -1; 170 TESTSCAN( 1, 3, decimal, 12, "%hhd", &i);177 TESTSCAN( 1, 3, decimal, 12, SCANPARMS( "%hhd", &i ) ); 171 178 CHECK_EQUAL( i, 127 ); 172 179 } … … 174 181 // reading +127, d 175 182 signed char i = -1; 176 TESTSCAN( 1, 4, decimal, 11, "%hhd", &i);183 TESTSCAN( 1, 4, decimal, 11, SCANPARMS( "%hhd", &i ) ); 177 184 CHECK_EQUAL( i, 127 ); 178 185 } … … 180 187 // reading 0, u 181 188 unsigned char i = -1; 182 TESTSCAN( 1, 1, decimal, 1, "%hhu", &i);189 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%hhu", &i ) ); 183 190 CHECK_EQUAL( i, 0 ); 184 191 } … … 186 193 // reading -0, u 187 194 unsigned char i = -1; 188 TESTSCAN( 1, 2, decimal, 0, "%hhu", &i);195 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%hhu", &i ) ); 189 196 CHECK_EQUAL( i, 0 ); 190 197 } … … 192 199 // reading +0, u 193 200 unsigned char i = -1; 194 TESTSCAN( 1, 2, decimal, 3, "%hhu", &i);201 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%hhu", &i ) ); 195 202 CHECK_EQUAL( i, 0 ); 196 203 } … … 198 205 // reading 127, u 199 206 unsigned char i = -1; 200 TESTSCAN( 1, 3, decimal, 12, "%hhu", &i);207 TESTSCAN( 1, 3, decimal, 12, SCANPARMS( "%hhu", &i ) ); 201 208 CHECK_EQUAL( i, 127 ); 202 209 } … … 204 211 // reading +127, u 205 212 unsigned char i = -1; 206 TESTSCAN( 1, 4, decimal, 11, "%hhu", &i);213 TESTSCAN( 1, 4, decimal, 11, SCANPARMS( "%hhu", &i ) ); 207 214 CHECK_EQUAL( i, 127 ); 208 215 } … … 210 217 // reading 255, u 211 218 unsigned char i = 0; 212 TESTSCAN( 1, 3, decimal, 17, "%hhu", &i);219 TESTSCAN( 1, 3, decimal, 17, SCANPARMS( "%hhu", &i ) ); 213 220 CHECK_EQUAL( i, 255 ); 214 221 } … … 216 223 // reading +255, u 217 224 unsigned char i = 0; 218 TESTSCAN( 1, 4, decimal, 16, "%hhu", &i);225 TESTSCAN( 1, 4, decimal, 16, SCANPARMS( "%hhu", &i ) ); 219 226 CHECK_EQUAL( i, 255 ); 220 227 } … … 222 229 // reading 0, i 223 230 signed char i = -1; 224 TESTSCAN( 1, 1, decimal, 1, "%hhi", &i);231 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%hhi", &i ) ); 225 232 CHECK_EQUAL( i, 0 ); 226 233 } … … 228 235 // reading -0, i 229 236 signed char i = -1; 230 TESTSCAN( 1, 2, decimal, 0, "%hhi", &i);237 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%hhi", &i ) ); 231 238 CHECK_EQUAL( i, 0 ); 232 239 } … … 234 241 // reading +0, i 235 242 signed char i = -1; 236 TESTSCAN( 1, 2, decimal, 3, "%hhi", &i);243 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%hhi", &i ) ); 237 244 CHECK_EQUAL( i, 0 ); 238 245 } … … 240 247 // reading -128, i 241 248 signed char i = -1; 242 TESTSCAN( 1, 4, decimal, 6, "%hhi", &i);249 TESTSCAN( 1, 4, decimal, 6, SCANPARMS( "%hhi", &i ) ); 243 250 CHECK_EQUAL( i, -128 ); 244 251 } … … 246 253 // reading 127, i 247 254 signed char i = -1; 248 TESTSCAN( 1, 3, decimal, 12, "%hhi", &i);255 TESTSCAN( 1, 3, decimal, 12, SCANPARMS( "%hhi", &i ) ); 249 256 CHECK_EQUAL( i, 127 ); 250 257 } … … 252 259 // reading +127, i 253 260 signed char i = -1; 254 TESTSCAN( 1, 4, decimal, 11, "%hhi", &i);261 TESTSCAN( 1, 4, decimal, 11, SCANPARMS( "%hhi", &i ) ); 255 262 CHECK_EQUAL( i, 127 ); 256 263 } … … 258 265 // reading 0, d 259 266 signed short i = -1; 260 TESTSCAN( 1, 1, decimal, 1, "%hd", &i);267 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%hd", &i ) ); 261 268 CHECK_EQUAL( i, 0 ); 262 269 } … … 264 271 // reading -0, d 265 272 signed short i = -1; 266 TESTSCAN( 1, 2, decimal, 0, "%hd", &i);273 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%hd", &i ) ); 267 274 CHECK_EQUAL( i, 0 ); 268 275 } … … 270 277 // reading +0, d 271 278 signed short i = -1; 272 TESTSCAN( 1, 2, decimal, 3, "%hd", &i);279 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%hd", &i ) ); 273 280 CHECK_EQUAL( i, 0 ); 274 281 } … … 276 283 // reading -32768, d 277 284 signed short i = -1; 278 TESTSCAN( 1, 6, decimal, 21, "%hd", &i);285 TESTSCAN( 1, 6, decimal, 21, SCANPARMS( "%hd", &i ) ); 279 286 CHECK_EQUAL( i, -32768 ); 280 287 } … … 282 289 // reading 32767, d 283 290 signed short i = -1; 284 TESTSCAN( 1, 5, decimal, 29, "%hd", &i);291 TESTSCAN( 1, 5, decimal, 29, SCANPARMS( "%hd", &i ) ); 285 292 CHECK_EQUAL( i, 32767 ); 286 293 } … … 288 295 // reading +32767, d 289 296 signed short i = -1; 290 TESTSCAN( 1, 6, decimal, 28, "%hd", &i);297 TESTSCAN( 1, 6, decimal, 28, SCANPARMS( "%hd", &i ) ); 291 298 CHECK_EQUAL( i, 32767 ); 292 299 } … … 294 301 // reading 0, u 295 302 unsigned short i = -1; 296 TESTSCAN( 1, 1, decimal, 1, "%hu", &i);303 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%hu", &i ) ); 297 304 CHECK_EQUAL( i, 0 ); 298 305 } … … 300 307 // reading -0, u 301 308 unsigned short i = -1; 302 TESTSCAN( 1, 2, decimal, 0, "%hu", &i);309 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%hu", &i ) ); 303 310 CHECK_EQUAL( i, 0 ); 304 311 } … … 306 313 // reading +0, u 307 314 unsigned short i = -1; 308 TESTSCAN( 1, 2, decimal, 3, "%hu", &i);315 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%hu", &i ) ); 309 316 CHECK_EQUAL( i, 0 ); 310 317 } … … 312 319 // reading 32767, u 313 320 unsigned short i = -1; 314 TESTSCAN( 1, 5, decimal, 29, "%hu", &i);321 TESTSCAN( 1, 5, decimal, 29, SCANPARMS( "%hu", &i ) ); 315 322 CHECK_EQUAL( i, 32767 ); 316 323 } … … 318 325 // reading +32767, u 319 326 unsigned short i = -1; 320 TESTSCAN( 1, 6, decimal, 28, "%hu", &i);327 TESTSCAN( 1, 6, decimal, 28, SCANPARMS( "%hu", &i ) ); 321 328 CHECK_EQUAL( i, 32767 ); 322 329 } … … 324 331 // reading 65535, u 325 332 unsigned short i = 0; 326 TESTSCAN( 1, 5, decimal, 36, "%hu", &i);333 TESTSCAN( 1, 5, decimal, 36, SCANPARMS( "%hu", &i ) ); 327 334 CHECK_EQUAL( i, 65535 ); 328 335 } … … 330 337 // reading +65535, u 331 338 unsigned short i = 0; 332 TESTSCAN( 1, 6, decimal, 35, "%hu", &i);339 TESTSCAN( 1, 6, decimal, 35, SCANPARMS( "%hu", &i ) ); 333 340 CHECK_EQUAL( i, 65535 ); 334 341 } … … 336 343 // reading 0, i 337 344 signed short i = -1; 338 TESTSCAN( 1, 1, decimal, 1, "%hi", &i);345 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%hi", &i ) ); 339 346 CHECK_EQUAL( i, 0 ); 340 347 } … … 342 349 // reading -0, i 343 350 signed short i = -1; 344 TESTSCAN( 1, 2, decimal, 0, "%hi", &i);351 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%hi", &i ) ); 345 352 CHECK_EQUAL( i, 0 ); 346 353 } … … 348 355 // reading +0, i 349 356 signed short i = -1; 350 TESTSCAN( 1, 2, decimal, 3, "%hi", &i);357 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%hi", &i ) ); 351 358 CHECK_EQUAL( i, 0 ); 352 359 } … … 354 361 // reading -32768, i 355 362 signed short i = -1; 356 TESTSCAN( 1, 6, decimal, 21, "%hi", &i);363 TESTSCAN( 1, 6, decimal, 21, SCANPARMS( "%hi", &i ) ); 357 364 CHECK_EQUAL( i, -32768 ); 358 365 } … … 360 367 // reading 32767, i 361 368 signed short i = -1; 362 TESTSCAN( 1, 5, decimal, 29, "%hi", &i);369 TESTSCAN( 1, 5, decimal, 29, SCANPARMS( "%hi", &i ) ); 363 370 CHECK_EQUAL( i, 32767 ); 364 371 } … … 366 373 // reading +32767, i 367 374 signed short i = -1; 368 TESTSCAN( 1, 6, decimal, 28, "%hi", &i);375 TESTSCAN( 1, 6, decimal, 28, SCANPARMS( "%hi", &i ) ); 369 376 CHECK_EQUAL( i, 32767 ); 370 377 } … … 372 379 // reading 0, d 373 380 signed int i = -1; 374 TESTSCAN( 1, 1, decimal, 1, "%d", &i);381 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%d", &i ) ); 375 382 CHECK_EQUAL( i, 0 ); 376 383 } … … 378 385 // reading -0, d 379 386 signed int i = -1; 380 TESTSCAN( 1, 2, decimal, 0, "%d", &i);387 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%d", &i ) ); 381 388 CHECK_EQUAL( i, 0 ); 382 389 } … … 384 391 // reading +0, d 385 392 signed int i = -1; 386 TESTSCAN( 1, 2, decimal, 3, "%d", &i);393 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%d", &i ) ); 387 394 CHECK_EQUAL( i, 0 ); 388 395 } … … 390 397 // reading -2147483648, d 391 398 signed int i = -1; 392 TESTSCAN( 1, 11, decimal, 42, "%d", &i);399 TESTSCAN( 1, 11, decimal, 42, SCANPARMS( "%d", &i ) ); 393 400 CHECK_EQUAL( i, -2147483648 ); 394 401 } … … 396 403 // reading 2147483647, d 397 404 signed int i = -1; 398 TESTSCAN( 1, 10, decimal, 55, "%d", &i);405 TESTSCAN( 1, 10, decimal, 55, SCANPARMS( "%d", &i ) ); 399 406 CHECK_EQUAL( i, 2147483647 ); 400 407 } … … 402 409 // reading +2147483647, d 403 410 signed int i = -1; 404 TESTSCAN( 1, 11, decimal, 54, "%d", &i);411 TESTSCAN( 1, 11, decimal, 54, SCANPARMS( "%d", &i ) ); 405 412 CHECK_EQUAL( i, 2147483647 ); 406 413 } … … 408 415 // reading 0, u 409 416 unsigned int i = -1; 410 TESTSCAN( 1, 1, decimal, 1, "%u", &i);417 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%u", &i ) ); 411 418 CHECK_EQUAL( i, 0 ); 412 419 } … … 414 421 // reading -0, u 415 422 unsigned int i = -1; 416 TESTSCAN( 1, 2, decimal, 0, "%u", &i);423 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%u", &i ) ); 417 424 CHECK_EQUAL( i, 0 ); 418 425 } … … 420 427 // reading +0, u 421 428 unsigned int i = -1; 422 TESTSCAN( 1, 2, decimal, 3, "%u", &i);429 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%u", &i ) ); 423 430 CHECK_EQUAL( i, 0 ); 424 431 } … … 426 433 // reading 2147483647, u 427 434 unsigned int i = -1; 428 TESTSCAN( 1, 10, decimal, 55, "%u", &i);435 TESTSCAN( 1, 10, decimal, 55, SCANPARMS( "%u", &i ) ); 429 436 CHECK_EQUAL( i, 2147483647 ); 430 437 } … … 432 439 // reading +2147483647, u 433 440 unsigned int i = -1; 434 TESTSCAN( 1, 11, decimal, 54, "%u", &i);441 TESTSCAN( 1, 11, decimal, 54, SCANPARMS( "%u", &i ) ); 435 442 CHECK_EQUAL( i, 2147483647 ); 436 443 } … … 438 445 // reading 4294967295, u 439 446 unsigned int i = 0; 440 TESTSCAN( 1, 10, decimal, 67, "%u", &i);447 TESTSCAN( 1, 10, decimal, 67, SCANPARMS( "%u", &i ) ); 441 448 CHECK_FEQUAL( i, 4294967295, unsigned int, "%u" ); 442 449 } … … 444 451 // reading +4294967295, u 445 452 unsigned int i = 0; 446 TESTSCAN( 1, 11, decimal, 66, "%u", &i);453 TESTSCAN( 1, 11, decimal, 66, SCANPARMS( "%u", &i ) ); 447 454 CHECK_FEQUAL( i, 4294967295, unsigned int, "%u" ); 448 455 } … … 450 457 // reading 0, i 451 458 signed int i = -1; 452 TESTSCAN( 1, 1, decimal, 1, "%i", &i);459 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%i", &i ) ); 453 460 CHECK_EQUAL( i, 0 ); 454 461 } … … 456 463 // reading -0, i 457 464 signed int i = -1; 458 TESTSCAN( 1, 2, decimal, 0, "%i", &i);465 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%i", &i ) ); 459 466 CHECK_EQUAL( i, 0 ); 460 467 } … … 462 469 // reading +0, i 463 470 signed int i = -1; 464 TESTSCAN( 1, 2, decimal, 3, "%i", &i);471 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%i", &i ) ); 465 472 CHECK_EQUAL( i, 0 ); 466 473 } … … 468 475 // reading -2147483648, i 469 476 signed int i = -1; 470 TESTSCAN( 1, 11, decimal, 42, "%i", &i);477 TESTSCAN( 1, 11, decimal, 42, SCANPARMS( "%i", &i ) ); 471 478 CHECK_EQUAL( i, -2147483648 ); 472 479 } … … 474 481 // reading 2147483647, i 475 482 signed int i = -1; 476 TESTSCAN( 1, 10, decimal, 55, "%i", &i);483 TESTSCAN( 1, 10, decimal, 55, SCANPARMS( "%i", &i ) ); 477 484 CHECK_EQUAL( i, 2147483647 ); 478 485 } … … 480 487 // reading +2147483647, i 481 488 signed int i = -1; 482 TESTSCAN( 1, 11, decimal, 54, "%i", &i);489 TESTSCAN( 1, 11, decimal, 54, SCANPARMS( "%i", &i ) ); 483 490 CHECK_EQUAL( i, 2147483647 ); 484 491 } … … 486 493 // reading 0, d 487 494 signed long i = -1; 488 TESTSCAN( 1, 1, decimal, 1, "%ld", &i);495 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%ld", &i ) ); 489 496 CHECK_EQUAL( i, 0l ); 490 497 } … … 492 499 // reading -0, d 493 500 signed long i = -1; 494 TESTSCAN( 1, 2, decimal, 0, "%ld", &i);501 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%ld", &i ) ); 495 502 CHECK_EQUAL( i, 0l ); 496 503 } … … 498 505 // reading +0, d 499 506 signed long i = -1; 500 TESTSCAN( 1, 2, decimal, 3, "%ld", &i);507 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%ld", &i ) ); 501 508 CHECK_EQUAL( i, 0l ); 502 509 } … … 504 511 // reading -2147483648, d 505 512 signed long i = -1; 506 TESTSCAN( 1, 11, decimal, 42, "%ld", &i);513 TESTSCAN( 1, 11, decimal, 42, SCANPARMS( "%ld", &i ) ); 507 514 CHECK_EQUAL( i, -2147483648l ); 508 515 } … … 510 517 // reading 2147483647, d 511 518 signed long i = -1; 512 TESTSCAN( 1, 10, decimal, 55, "%ld", &i);519 TESTSCAN( 1, 10, decimal, 55, SCANPARMS( "%ld", &i ) ); 513 520 CHECK_EQUAL( i, 2147483647l ); 514 521 } … … 516 523 // reading +2147483647, d 517 524 signed long i = -1; 518 TESTSCAN( 1, 11, decimal, 54, "%ld", &i);525 TESTSCAN( 1, 11, decimal, 54, SCANPARMS( "%ld", &i ) ); 519 526 CHECK_EQUAL( i, 2147483647l ); 520 527 } … … 522 529 // reading 0, u 523 530 unsigned long i = -1; 524 TESTSCAN( 1, 1, decimal, 1, "%lu", &i);531 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%lu", &i ) ); 525 532 CHECK_EQUAL( i, 0ul ); 526 533 } … … 528 535 // reading -0, u 529 536 unsigned long i = -1; 530 TESTSCAN( 1, 2, decimal, 0, "%lu", &i);537 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%lu", &i ) ); 531 538 CHECK_EQUAL( i, 0ul ); 532 539 } … … 534 541 // reading +0, u 535 542 unsigned long i = -1; 536 TESTSCAN( 1, 2, decimal, 3, "%lu", &i);543 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%lu", &i ) ); 537 544 CHECK_EQUAL( i, 0ul ); 538 545 } … … 540 547 // reading 2147483647, u 541 548 unsigned long i = -1; 542 TESTSCAN( 1, 10, decimal, 55, "%lu", &i);549 TESTSCAN( 1, 10, decimal, 55, SCANPARMS( "%lu", &i ) ); 543 550 CHECK_EQUAL( i, 2147483647ul ); 544 551 } … … 546 553 // reading +2147483647, u 547 554 unsigned long i = -1; 548 TESTSCAN( 1, 11, decimal, 54, "%lu", &i);555 TESTSCAN( 1, 11, decimal, 54, SCANPARMS( "%lu", &i ) ); 549 556 CHECK_EQUAL( i, 2147483647ul ); 550 557 } … … 552 559 // reading 4294967295, u 553 560 unsigned long i = 0; 554 TESTSCAN( 1, 10, decimal, 67, "%lu", &i);561 TESTSCAN( 1, 10, decimal, 67, SCANPARMS( "%lu", &i ) ); 555 562 CHECK_FEQUAL( i, 4294967295ul, unsigned long, "%lu" ); 556 563 } … … 558 565 // reading +4294967295, u 559 566 unsigned long i = 0; 560 TESTSCAN( 1, 11, decimal, 66, "%lu", &i);567 TESTSCAN( 1, 11, decimal, 66, SCANPARMS( "%lu", &i ) ); 561 568 CHECK_FEQUAL( i, 4294967295ul, unsigned long, "%lu" ); 562 569 } … … 564 571 // reading 0, i 565 572 signed long i = -1; 566 TESTSCAN( 1, 1, decimal, 1, "%li", &i);573 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%li", &i ) ); 567 574 CHECK_EQUAL( i, 0l ); 568 575 } … … 570 577 // reading -0, i 571 578 signed long i = -1; 572 TESTSCAN( 1, 2, decimal, 0, "%li", &i);579 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%li", &i ) ); 573 580 CHECK_EQUAL( i, 0l ); 574 581 } … … 576 583 // reading +0, i 577 584 signed long i = -1; 578 TESTSCAN( 1, 2, decimal, 3, "%li", &i);585 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%li", &i ) ); 579 586 CHECK_EQUAL( i, 0l ); 580 587 } … … 582 589 // reading -2147483648, i 583 590 signed long i = -1; 584 TESTSCAN( 1, 11, decimal, 42, "%li", &i);591 TESTSCAN( 1, 11, decimal, 42, SCANPARMS( "%li", &i ) ); 585 592 CHECK_EQUAL( i, -2147483648l ); 586 593 } … … 588 595 // reading 2147483647, i 589 596 signed long i = -1; 590 TESTSCAN( 1, 10, decimal, 55, "%li", &i);597 TESTSCAN( 1, 10, decimal, 55, SCANPARMS( "%li", &i ) ); 591 598 CHECK_EQUAL( i, 2147483647l ); 592 599 } … … 594 601 // reading +2147483647, i 595 602 signed long i = -1; 596 TESTSCAN( 1, 11, decimal, 54, "%li", &i);603 TESTSCAN( 1, 11, decimal, 54, SCANPARMS( "%li", &i ) ); 597 604 CHECK_EQUAL( i, 2147483647l ); 598 605 } … … 600 607 // reading 0, d 601 608 signed long long i = -1; 602 TESTSCAN( 1, 1, decimal, 1, "%lld", &i);609 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%lld", &i ) ); 603 610 CHECK_EQUAL( i, 0ll ); 604 611 } … … 606 613 // reading -0, d 607 614 signed long long i = -1; 608 TESTSCAN( 1, 2, decimal, 0, "%lld", &i);615 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%lld", &i ) ); 609 616 CHECK_EQUAL( i, 0ll ); 610 617 } … … 612 619 // reading +0, d 613 620 signed long long i = -1; 614 TESTSCAN( 1, 2, decimal, 3, "%lld", &i);621 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%lld", &i ) ); 615 622 CHECK_EQUAL( i, 0ll ); 616 623 } … … 618 625 // reading -9223372036854775808, d 619 626 signed long long i = -1; 620 TESTSCAN( 1, 20, decimal, 78, "%lli", &i);627 TESTSCAN( 1, 20, decimal, 78, SCANPARMS( "%lli", &i ) ); 621 628 CHECK_FEQUAL( i, LLONG_MIN, signed long long, "%lli" ); // should be literal -9223372036854775808ll but GCC balks. 622 629 CHECK_EQUAL( i < 0ll, 1 ); … … 625 632 // reading +9223372036854775807, d 626 633 signed long long i = -1; 627 TESTSCAN( 1, 20, decimal, 99, "%lld", &i);634 TESTSCAN( 1, 20, decimal, 99, SCANPARMS( "%lld", &i ) ); 628 635 CHECK_FEQUAL( i, 9223372036854775807ll, signed long long, "%lld" ); 629 636 } … … 631 638 // reading 0, u 632 639 unsigned long long i = -1; 633 TESTSCAN( 1, 1, decimal, 1, "%llu", &i);640 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%llu", &i ) ); 634 641 CHECK_EQUAL( i, 0ull ); 635 642 } … … 637 644 // reading -0, u 638 645 unsigned long long i = -1; 639 TESTSCAN( 1, 2, decimal, 0, "%llu", &i);646 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%llu", &i ) ); 640 647 CHECK_EQUAL( i, 0ull ); 641 648 } … … 643 650 // reading +0, u 644 651 unsigned long long i = -1; 645 TESTSCAN( 1, 2, decimal, 3, "%llu", &i);652 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%llu", &i ) ); 646 653 CHECK_EQUAL( i, 0ull ); 647 654 } … … 649 656 // reading 9223372036854775807, u 650 657 unsigned long long i = -1; 651 TESTSCAN( 1, 19, decimal, 100, "%llu", &i);658 TESTSCAN( 1, 19, decimal, 100, SCANPARMS( "%llu", &i ) ); 652 659 CHECK_FEQUAL( i, 9223372036854775807ull, unsigned long long, "%llu" ); 653 660 } … … 655 662 // reading +9223372036854775807, u 656 663 unsigned long long i = -1; 657 TESTSCAN( 1, 20, decimal, 99, "%llu", &i);664 TESTSCAN( 1, 20, decimal, 99, SCANPARMS( "%llu", &i ) ); 658 665 CHECK_FEQUAL( i, 9223372036854775807ull, unsigned long long, "%llu" ); 659 666 } … … 661 668 // reading 18446744073709551615, u 662 669 unsigned long long i = 0; 663 TESTSCAN( 1, 20, decimal, 121, "%llu", &i);670 TESTSCAN( 1, 20, decimal, 121, SCANPARMS( "%llu", &i ) ); 664 671 CHECK_FEQUAL( i, 18446744073709551615ull, unsigned long long, "%llu" ); 665 672 } … … 667 674 // reading +18446744073709551615, u 668 675 unsigned long long i = 0; 669 TESTSCAN( 1, 21, decimal, 120, "%llu", &i);676 TESTSCAN( 1, 21, decimal, 120, SCANPARMS( "%llu", &i ) ); 670 677 CHECK_FEQUAL( i, 18446744073709551615ull, unsigned long long, "%llu" ); 671 678 } … … 673 680 // reading 0, i 674 681 signed long long i = -1; 675 TESTSCAN( 1, 1, decimal, 1, "%lli", &i);682 TESTSCAN( 1, 1, decimal, 1, SCANPARMS( "%lli", &i ) ); 676 683 CHECK_EQUAL( i, 0ll ); 677 684 } … … 679 686 // reading -0, i 680 687 signed long long i = -1; 681 TESTSCAN( 1, 2, decimal, 0, "%lli", &i);688 TESTSCAN( 1, 2, decimal, 0, SCANPARMS( "%lli", &i ) ); 682 689 CHECK_EQUAL( i, 0ll ); 683 690 } … … 685 692 // reading +0, i 686 693 signed long long i = -1; 687 TESTSCAN( 1, 2, decimal, 3, "%lli", &i);694 TESTSCAN( 1, 2, decimal, 3, SCANPARMS( "%lli", &i ) ); 688 695 CHECK_EQUAL( i, 0ll ); 689 696 } … … 691 698 // reading -9223372036854775808, i 692 699 signed long long i = -1; 693 TESTSCAN( 1, 20, decimal, 78, "%lli", &i);700 TESTSCAN( 1, 20, decimal, 78, SCANPARMS( "%lli", &i ) ); 694 701 CHECK_FEQUAL( i, LLONG_MIN, signed long long, "%lli" ); // should be literal -9223372036854775808ll but GCC balks. 695 702 CHECK_EQUAL( i < 0ll, 1 ); … … 698 705 // reading 9223372036854775807, i 699 706 signed long long i = -1; 700 TESTSCAN( 1, 19, decimal, 100, "%lli", &i);707 TESTSCAN( 1, 19, decimal, 100, SCANPARMS( "%lli", &i ) ); 701 708 CHECK_FEQUAL( i, 9223372036854775807ll, signed long long, "%lli" ); 702 709 } … … 704 711 // reading +9223372036854775807, i 705 712 signed long long i = -1; 706 TESTSCAN( 1, 20, decimal, 99, "%lli", &i);713 TESTSCAN( 1, 20, decimal, 99, SCANPARMS( "%lli", &i ) ); 707 714 CHECK_FEQUAL( i, 9223372036854775807ll, signed long long, "%lli" ); 708 715 } … … 712 719 // reading 0, x 713 720 unsigned char i = -1; 714 TESTSCAN( 1, 1, hexadecimal, 3, "%hhx", &i);721 TESTSCAN( 1, 1, hexadecimal, 3, SCANPARMS( "%hhx", &i ) ); 715 722 CHECK_EQUAL( i, 0 ); 716 723 } … … 718 725 // reading -0x0, x 719 726 unsigned char i = -1; 720 TESTSCAN( 1, 4, hexadecimal, 0, "%hhx", &i);727 TESTSCAN( 1, 4, hexadecimal, 0, SCANPARMS( "%hhx", &i ) ); 721 728 CHECK_EQUAL( i, 0 ); 722 729 } … … 724 731 // reading 0x000, x 725 732 unsigned char i = -1; 726 TESTSCAN( 1, 6, hexadecimal, 5, "%hhx", &i);733 TESTSCAN( 1, 6, hexadecimal, 5, SCANPARMS( "%hhx", &i ) ); 727 734 CHECK_EQUAL( i, 0 ); 728 735 } … … 730 737 // reading 0x0, i 731 738 signed char i = -1; 732 TESTSCAN( 1, 4, hexadecimal, 0, "%hhi", &i);739 TESTSCAN( 1, 4, hexadecimal, 0, SCANPARMS( "%hhi", &i ) ); 733 740 CHECK_EQUAL( i, 0 ); 734 741 } … … 736 743 // reading 7f, x 737 744 unsigned char i = -1; 738 TESTSCAN( 1, 2, hexadecimal, 15, "%hhx", &i);745 TESTSCAN( 1, 2, hexadecimal, 15, SCANPARMS( "%hhx", &i ) ); 739 746 CHECK_EQUAL( i, 127 ); 740 747 } … … 742 749 // reading -0x7f, x 743 750 unsigned char i = -1; 744 TESTSCAN( 1, 5, hexadecimal, 12, "%hhx", &i);751 TESTSCAN( 1, 5, hexadecimal, 12, SCANPARMS( "%hhx", &i ) ); 745 752 CHECK_FEQUAL( i, -127, unsigned char, "%hhu" ); 746 753 } … … 748 755 // reading 0x80, i 749 756 signed char i = -1; 750 TESTSCAN( 1, 4, hexadecimal, 18, "%hhi", &i);757 TESTSCAN( 1, 4, hexadecimal, 18, SCANPARMS( "%hhi", &i ) ); 751 758 CHECK_FEQUAL( i, -128, signed char, "%hhd" ); 752 759 } … … 754 761 // reading ff, x 755 762 unsigned char i = -1; 756 TESTSCAN( 1, 2, hexadecimal, 25, "%hhx", &i);763 TESTSCAN( 1, 2, hexadecimal, 25, SCANPARMS( "%hhx", &i ) ); 757 764 CHECK_EQUAL( i, 0xff ); 758 765 } … … 760 767 // reading 0xff, x 761 768 unsigned char i = -1; 762 TESTSCAN( 1, 4, hexadecimal, 23, "%hhx", &i);769 TESTSCAN( 1, 4, hexadecimal, 23, SCANPARMS( "%hhx", &i ) ); 763 770 CHECK_EQUAL( i, 255 ); 764 771 } … … 766 773 // reading 0xff, i 767 774 signed char i = 0; 768 TESTSCAN( 1, 4, hexadecimal, 23, "%hhi", &i);775 TESTSCAN( 1, 4, hexadecimal, 23, SCANPARMS( "%hhi", &i ) ); 769 776 CHECK_EQUAL( i, -1 ); 770 777 } … … 772 779 // reading 0, x 773 780 unsigned short i = -1; 774 TESTSCAN( 1, 1, hexadecimal, 3, "%hx", &i);781 TESTSCAN( 1, 1, hexadecimal, 3, SCANPARMS( "%hx", &i ) ); 775 782 CHECK_EQUAL( i, 0 ); 776 783 } … … 778 785 // reading -0x0, x 779 786 unsigned short i = -1; 780 TESTSCAN( 1, 4, hexadecimal, 0, "%hx", &i);787 TESTSCAN( 1, 4, hexadecimal, 0, SCANPARMS( "%hx", &i ) ); 781 788 CHECK_EQUAL( i, 0 ); 782 789 } … … 784 791 // reading 0x000, x 785 792 unsigned short i = -1; 786 TESTSCAN( 1, 6, hexadecimal, 5, "%hx", &i);793 TESTSCAN( 1, 6, hexadecimal, 5, SCANPARMS( "%hx", &i ) ); 787 794 CHECK_EQUAL( i, 0 ); 788 795 } … … 790 797 // reading 0x0, i 791 798 signed short i = -1; 792 TESTSCAN( 1, 4, hexadecimal, 0, "%hi", &i);799 TESTSCAN( 1, 4, hexadecimal, 0, SCANPARMS( "%hi", &i ) ); 793 800 CHECK_EQUAL( i, 0 ); 794 801 } … … 796 803 // reading 7fff, x 797 804 unsigned short i = -1; 798 TESTSCAN( 1, 4, hexadecimal, 31, "%hx", &i);805 TESTSCAN( 1, 4, hexadecimal, 31, SCANPARMS( "%hx", &i ) ); 799 806 CHECK_EQUAL( i, 32767 ); 800 807 } … … 802 809 // reading -0x7fff, x 803 810 unsigned short i = -1; 804 TESTSCAN( 1, 7, hexadecimal, 28, "%hx", &i);811 TESTSCAN( 1, 7, hexadecimal, 28, SCANPARMS( "%hx", &i ) ); 805 812 CHECK_FEQUAL( i, -32767, unsigned short, "%hu" ); 806 813 } … … 808 815 // reading 0x8000, i 809 816 signed short i = -1; 810 TESTSCAN( 1, 6, hexadecimal, 36, "%hi", &i);817 TESTSCAN( 1, 6, hexadecimal, 36, SCANPARMS( "%hi", &i ) ); 811 818 CHECK_FEQUAL( i, -32768, signed short, "%hd" ); 812 819 } … … 814 821 // reading ffff, x 815 822 unsigned short i = -1; 816 TESTSCAN( 1, 4, hexadecimal, 45, "%hx", &i);823 TESTSCAN( 1, 4, hexadecimal, 45, SCANPARMS( "%hx", &i ) ); 817 824 CHECK_EQUAL( i, 65535 ); 818 825 } … … 820 827 // reading 0xffff, x 821 828 unsigned short i = -1; 822 TESTSCAN( 1, 6, hexadecimal, 43, "%hx", &i);829 TESTSCAN( 1, 6, hexadecimal, 43, SCANPARMS( "%hx", &i ) ); 823 830 CHECK_EQUAL( i, 65535 ); 824 831 } … … 826 833 // reading 0xffff, i 827 834 signed short i = 0; 828 TESTSCAN( 1, 6, hexadecimal, 43, "%hi", &i);835 TESTSCAN( 1, 6, hexadecimal, 43, SCANPARMS( "%hi", &i ) ); 829 836 CHECK_FEQUAL( i, -1, signed short, "%hd" ); 830 837 } … … 832 839 // reading 0, x 833 840 unsigned int i = -1; 834 TESTSCAN( 1, 1, hexadecimal, 3, "%x", &i);841 TESTSCAN( 1, 1, hexadecimal, 3, SCANPARMS( "%x", &i ) ); 835 842 CHECK_EQUAL( i, 0 ); 836 843 } … … 838 845 // reading -0x0, x 839 846 unsigned int i = -1; 840 TESTSCAN( 1, 4, hexadecimal, 0, "%x", &i);847 TESTSCAN( 1, 4, hexadecimal, 0, SCANPARMS( "%x", &i ) ); 841 848 CHECK_EQUAL( i, 0 ); 842 849 } … … 844 851 // reading 0x000, x 845 852 unsigned int i = -1; 846 TESTSCAN( 1, 6, hexadecimal, 5, "%x", &i);853 TESTSCAN( 1, 6, hexadecimal, 5, SCANPARMS( "%x", &i ) ); 847 854 CHECK_EQUAL( i, 0 ); 848 855 } … … 850 857 // reading 0x0, i 851 858 signed int i = -1; 852 TESTSCAN( 1, 4, hexadecimal, 0, "%i", &i);859 TESTSCAN( 1, 4, hexadecimal, 0, SCANPARMS( "%i", &i ) ); 853 860 CHECK_EQUAL( i, 0 ); 854 861 } … … 856 863 // reading 7fffffff, x 857 864 unsigned int i = -1; 858 TESTSCAN( 1, 8, hexadecimal, 53, "%x", &i);865 TESTSCAN( 1, 8, hexadecimal, 53, SCANPARMS( "%x", &i ) ); 859 866 CHECK_EQUAL( i, 2147483647 ); 860 867 } … … 862 869 // reading -0x7fffffff, x 863 870 unsigned int i = -1; 864 TESTSCAN( 1, 11, hexadecimal, 50, "%x", &i);871 TESTSCAN( 1, 11, hexadecimal, 50, SCANPARMS( "%x", &i ) ); 865 872 CHECK_FEQUAL( i, -2147483647, unsigned int, "%u" ); 866 873 } … … 868 875 // reading 0x80000000, i 869 876 signed int i = -1; 870 //TESTSCAN( 1, 11, hexadecimal, 62, "%i", &i);871 CHECK_EQUAL( sscanf( "-0x80000000", "%i", &i );872 CHECK_FEQUAL( i, -2147483648, signed int, "%d" ); 877 TESTSCAN( 1, 10, hexadecimal, 62, SCANPARMS( "%i", &i ) ); 878 printf( "found %d, expected -2147483648\n", i ); 879 CHECK_FEQUAL( i, -2147483648, signed int, "%d" ); /* FIXME */ 873 880 } 874 881 { 875 882 // reading ffffffff, x 876 883 unsigned int i = -1; 877 TESTSCAN( 1, 8, hexadecimal, 75, "%x", &i);884 TESTSCAN( 1, 8, hexadecimal, 75, SCANPARMS( "%x", &i ) ); 878 885 CHECK_FEQUAL( i, 4294967295, unsigned int, "%d" ); 879 886 } … … 881 888 // reading 0xffffffff, x 882 889 unsigned int i = -1; 883 TESTSCAN( 1, 10, hexadecimal, 73, "%x", &i);890 TESTSCAN( 1, 10, hexadecimal, 73, SCANPARMS( "%x", &i ) ); 884 891 CHECK_FEQUAL( i, 4294967295, unsigned int, "%d" ); 885 892 } … … 889 896 // reading 0, o 890 897 unsigned char i = -1; 891 TESTSCAN( 1, 1, octal, 4, "%hho", &i);898 TESTSCAN( 1, 1, octal, 4, SCANPARMS( "%hho", &i ) ); 892 899 CHECK_EQUAL( i, 0u ); 893 900 } … … 895 902 // reading +0000, o 896 903 unsigned char i = -1; 897 TESTSCAN( 1, 5, octal, 0, "%hho", &i);904 TESTSCAN( 1, 5, octal, 0, SCANPARMS( "%hho", &i ) ); 898 905 CHECK_EQUAL( i, 0u ); 899 906 } … … 901 908 // reading -0000, o 902 909 unsigned char i = -1; 903 TESTSCAN( 1, 5, octal, 6, "%hho", &i);910 TESTSCAN( 1, 5, octal, 6, SCANPARMS( "%hho", &i ) ); 904 911 CHECK_EQUAL( i, 0u ); 905 912 } … … 907 914 // reading 0177, o 908 915 unsigned char i = -1; 909 TESTSCAN( 1, 4, octal, 13, "%hho", &i);916 TESTSCAN( 1, 4, octal, 13, SCANPARMS( "%hho", &i ) ); 910 917 CHECK_EQUAL( i, 127u ); 911 918 } … … 913 920 // reading +0177, o 914 921 unsigned char i = -1; 915 TESTSCAN( 1, 5, octal, 12, "%hho", &i);922 TESTSCAN( 1, 5, octal, 12, SCANPARMS( "%hho", &i ) ); 916 923 CHECK_EQUAL( i, 127u ); 917 924 } … … 919 926 // reading 0377, o 920 927 unsigned char i = -1; 921 TESTSCAN( 1, 4, octal, 19, "%hho", &i);928 TESTSCAN( 1, 4, octal, 19, SCANPARMS( "%hho", &i ) ); 922 929 CHECK_FEQUAL( i, 255u, unsigned char, "%hhu" ); 923 930 } … … 925 932 // reading +0377, o 926 933 unsigned char i = -1; 927 TESTSCAN( 1, 5, octal, 18, "%hho", &i);934 TESTSCAN( 1, 5, octal, 18, SCANPARMS( "%hho", &i ) ); 928 935 CHECK_FEQUAL( i, 255u, unsigned char, "%hhu" ); 929 936 } … … 931 938 // reading -0377, o 932 939 unsigned char i = -1; 933 TESTSCAN( 1, 5, octal, 24, "%hho", &i);940 TESTSCAN( 1, 5, octal, 24, SCANPARMS( "%hho", &i ) ); 934 941 CHECK_FEQUAL( i, 1u, unsigned char, "%hhu" ); 935 942 } … … 937 944 // reading 077777, o 938 945 unsigned short i = -1; 939 TESTSCAN( 1, 6, octal, 31, "%ho", &i);946 TESTSCAN( 1, 6, octal, 31, SCANPARMS( "%ho", &i ) ); 940 947 CHECK_EQUAL( i, 32767u ); 941 948 } … … 943 950 // reading +077777, o 944 951 unsigned short i = -1; 945 TESTSCAN( 1, 7, octal, 30, "%ho", &i);952 TESTSCAN( 1, 7, octal, 30, SCANPARMS( "%ho", &i ) ); 946 953 CHECK_EQUAL( i, 32767u ); 947 954 } … … 949 956 // reading 0177777, o 950 957 unsigned short i = -1; 951 TESTSCAN( 1, 7, octal, 39, "%ho", &i);958 TESTSCAN( 1, 7, octal, 39, SCANPARMS( "%ho", &i ) ); 952 959 CHECK_FEQUAL( i, 65535u, unsigned short, "%hu" ); 953 960 } … … 955 962 // reading +0177777, o 956 963 unsigned short i = -1; 957 TESTSCAN( 1, 8, octal, 38, "%ho", &i);964 TESTSCAN( 1, 8, octal, 38, SCANPARMS( "%ho", &i ) ); 958 965 CHECK_FEQUAL( i, 65535u, unsigned short, "%hu" ); 959 966 } … … 961 968 // reading -0177777, o 962 969 unsigned short i = -1; 963 TESTSCAN( 1, 8, octal, 47, "%ho", &i);970 TESTSCAN( 1, 8, octal, 47, SCANPARMS( "%ho", &i ) ); 964 971 CHECK_FEQUAL( i, 1u, unsigned short, "%hu" ); 965 972 } … … 967 974 // reading 017777777777, o 968 975 unsigned int i = -1; 969 TESTSCAN( 1, 12, octal, 57, "%o", &i);976 TESTSCAN( 1, 12, octal, 57, SCANPARMS( "%o", &i ) ); 970 977 CHECK_EQUAL( i, 2147483647u ); 971 978 } … … 973 980 // reading +017777777777, o 974 981 unsigned int i = -1; 975 TESTSCAN( 1, 13, octal, 56, "%o", &i);982 TESTSCAN( 1, 13, octal, 56, SCANPARMS( "%o", &i ) ); 976 983 CHECK_EQUAL( i, 2147483647u ); 977 984 } … … 979 986 // reading 037777777777, o 980 987 unsigned int i = -1; 981 TESTSCAN( 1, 12, octal, 71, "%o", &i);988 TESTSCAN( 1, 12, octal, 71, SCANPARMS( "%o", &i ) ); 982 989 CHECK_FEQUAL( i, 4294967295u, unsigned int, "%u" ); 983 990 } … … 985 992 // reading +037777777777, o 986 993 unsigned int i = -1; 987 TESTSCAN( 1, 13, octal, 70, "%o", &i);994 TESTSCAN( 1, 13, octal, 70, SCANPARMS( "%o", &i ) ); 988 995 CHECK_FEQUAL( i, 4294967295u, unsigned int, "%u" ); 989 996 } … … 991 998 // reading -037777777777, o 992 999 unsigned int i = -1; 993 TESTSCAN( 1, 13, octal, 84, "%o", &i);1000 TESTSCAN( 1, 13, octal, 84, SCANPARMS( "%o", &i ) ); 994 1001 CHECK_FEQUAL( i, 1u, unsigned int, "%u" ); 995 1002 } … … 997 1004 // reading 017777777777, o 998 1005 unsigned long i = -1; 999 TESTSCAN( 1, 12, octal, 57, "%lo", &i);1006 TESTSCAN( 1, 12, octal, 57, SCANPARMS( "%lo", &i ) ); 1000 1007 CHECK_EQUAL( i, 2147483647lu ); 1001 1008 } … … 1003 1010 // reading +017777777777, o 1004 1011 unsigned long i = -1; 1005 TESTSCAN( 1, 13, octal, 56, "%lo", &i);1012 TESTSCAN( 1, 13, octal, 56, SCANPARMS( "%lo", &i ) ); 1006 1013 CHECK_EQUAL( i, 2147483647lu ); 1007 1014 } … … 1009 1016 // reading 037777777777, o 1010 1017 unsigned long i = -1; 1011 TESTSCAN( 1, 12, octal, 71, "%lo", &i);1018 TESTSCAN( 1, 12, octal, 71, SCANPARMS( "%lo", &i ) ); 1012 1019 CHECK_FEQUAL( i, 4294967295lu, unsigned long, "%lu" ); 1013 1020 } … … 1015 1022 // reading +037777777777, o 1016 1023 unsigned long i = -1; 1017 TESTSCAN( 1, 13, octal, 70, "%lo", &i);1024 TESTSCAN( 1, 13, octal, 70, SCANPARMS( "%lo", &i ) ); 1018 1025 CHECK_FEQUAL( i, 4294967295lu, unsigned long, "%lu" ); 1019 1026 } … … 1021 1028 // reading -037777777777, o 1022 1029 unsigned long i = -1; 1023 TESTSCAN( 1, 13, octal, 84, "%lo", &i);1030 TESTSCAN( 1, 13, octal, 84, SCANPARMS( "%lo", &i ) ); 1024 1031 CHECK_FEQUAL( i, 1lu, unsigned long, "%lu" ); 1025 1032 } … … 1027 1034 // reading 0777777777777777777777, o 1028 1035 unsigned long long i = -1; 1029 TESTSCAN( 1, 22, octal, 99, "%llo", &i);1036 TESTSCAN( 1, 22, octal, 99, SCANPARMS( "%llo", &i ) ); 1030 1037 CHECK_FEQUAL( i, 9223372036854775807llu, unsigned long long, "%llu" ); 1031 1038 } … … 1033 1040 // reading +0777777777777777777777, o 1034 1041 unsigned long long i = -1; 1035 TESTSCAN( 1, 23, octal, 98, "%llo", &i);1042 TESTSCAN( 1, 23, octal, 98, SCANPARMS( "%llo", &i ) ); 1036 1043 CHECK_FEQUAL( i, 9223372036854775807llu, unsigned long long, "%llu" ); 1037 1044 } … … 1039 1046 // reading 01777777777777777777777, o 1040 1047 unsigned long long i = -1; 1041 TESTSCAN( 1, 23, octal, 123, "%llo", &i);1048 TESTSCAN( 1, 23, octal, 123, SCANPARMS( "%llo", &i ) ); 1042 1049 CHECK_FEQUAL( i, 18446744073709551615llu, unsigned long long, "%llu" ); 1043 1050 } … … 1045 1052 // reading +01777777777777777777777, o 1046 1053 unsigned long long i = -1; 1047 TESTSCAN( 1, 24, octal, 122, "%llo", &i);1054 TESTSCAN( 1, 24, octal, 122, SCANPARMS( "%llo", &i ) ); 1048 1055 CHECK_FEQUAL( i, 18446744073709551615llu, unsigned long long, "%llu" ); 1049 1056 } … … 1051 1058 // reading -01777777777777777777777, o 1052 1059 unsigned long long i = -1; 1053 TESTSCAN( 1, 24, octal, 147, "%llo", &i);1060 TESTSCAN( 1, 24, octal, 147, SCANPARMS( "%llo", &i ) ); 1054 1061 CHECK_FEQUAL( i, 1llu, unsigned long long, "%llu" ); 1055 1062 } … … 1061 1068 // reading abc 1062 1069 memset( buffer, '\0', BUFSIZE ); 1063 TESTSCAN( 1, 3, alpha, 0, "%[abc]", buffer);1070 TESTSCAN( 1, 3, alpha, 0, SCANPARMS( "%[abc]", buffer ) ); 1064 1071 CHECK_FALSE( memcmp( buffer, "abc", 4 ) ); 1065 1072 } … … 1067 1074 // reading a-c 1068 1075 memset( buffer, '\0', BUFSIZE ); 1069 TESTSCAN( 1, 3, alpha, 0, "%[a-c]", buffer);1076 TESTSCAN( 1, 3, alpha, 0, SCANPARMS( "%[a-c]", buffer ) ); 1070 1077 CHECK_FALSE( memcmp( buffer, "abc", 4 ) ); 1071 1078 } … … 1073 1080 // reading a-h 1074 1081 memset( buffer, '\0', BUFSIZE ); 1075 TESTSCAN( 1, 8, alpha, 0, "%[a-h]", buffer);1082 TESTSCAN( 1, 8, alpha, 0, SCANPARMS( "%[a-h]", buffer ) ); 1076 1083 CHECK_FALSE( memcmp( buffer, "abcdefgh", 9 ) ); 1077 1084 } … … 1079 1086 // reading o-r, including [, seperate char 1080 1087 memset( buffer, '\0', BUFSIZE ); 1081 TESTSCAN( 1, 5, alpha, 15, "%[[o-qr]", buffer);1088 TESTSCAN( 1, 5, alpha, 15, SCANPARMS( "%[[o-qr]", buffer ) ); 1082 1089 CHECK_FALSE( memcmp( buffer, "op[qr", 6 ) ); 1083 1090 } … … 1085 1092 // reading v-y, including ], two groups 1086 1093 memset( buffer, '\0', BUFSIZE ); 1087 TESTSCAN( 1, 5, alpha, 23, "%[]v-wx-y]", buffer);1094 TESTSCAN( 1, 5, alpha, 23, SCANPARMS( "%[]v-wx-y]", buffer ) ); 1088 1095 CHECK_FALSE( memcmp( buffer, "vw]xy", 6 ) ); 1089 1096 } … … 1091 1098 // missing on first character 1092 1099 memset( buffer, '\0', BUFSIZE ); 1093 TESTSCAN( 0, -1, alpha, 0, "%[b]", buffer);1100 TESTSCAN( 0, -1, alpha, 0, SCANPARMS( "%[b]", buffer ) ); 1094 1101 CHECK_FALSE( memcmp( buffer, "", 1 ) ); 1095 1102 } … … 1097 1104 // eof while reading, two groups 1098 1105 memset( buffer, '\0', BUFSIZE ); 1099 TESTSCAN( 1, 2, alpha, 27, "%[a-zA-Z]", buffer);1106 TESTSCAN( 1, 2, alpha, 27, SCANPARMS( "%[a-zA-Z]", buffer ) ); 1100 1107 CHECK_FALSE( memcmp( buffer, "yz", 3 ) ); 1101 1108 } … … 1103 1110 // eof before reading 1104 1111 memset( buffer, '\0', BUFSIZE ); 1105 TESTSCAN( -1, -1, alpha, 29, "%[a-z]", buffer ) );1112 TESTSCAN( -1, -1, alpha, 29, SCANPARMS( "%[a-z]", buffer ) ); 1106 1113 CHECK_FALSE( memcmp( buffer, "", 1 ) ); 1107 1114 } … … 1109 1116 // negation - [^...] 1110 1117 memset( buffer, '\0', BUFSIZE ); 1111 TESTSCAN( 1, 3, alpha, 0, "%[^d-f]", buffer);1118 TESTSCAN( 1, 3, alpha, 0, SCANPARMS( "%[^d-f]", buffer ) ); 1112 1119 CHECK_FALSE( memcmp( buffer, "abc", 4 ) ); 1113 1120 } … … 1157 1164 according to 7.19.6.2 paragraph 10. 1158 1165 */ 1159 TESTSCAN( 0, -1, special, 0, "%hhx", &i );1160 CHECK_EQUAL( i, 1 ); 1166 TESTSCAN( 0, -1, special, 0, SCANPARMS( "%hhx", &i ) ); /* May fail on regtest */ 1167 CHECK_EQUAL( i, 1 ); /* FIXME */ 1161 1168 } 1162 1169 { 1163 1170 // reading -0x, x 1164 1171 unsigned short i = 1; 1165 TESTSCAN( 0, -1, special, 0, "%hx", &i );1166 CHECK_EQUAL( i, 1 ); 1172 TESTSCAN( 0, -1, special, 0, SCANPARMS( "%hx", &i ) ); /* May fail on regtest */ 1173 CHECK_EQUAL( i, 1 ); /* FIXME */ 1167 1174 } 1168 1175 { 1169 1176 // reading -0x, x 1170 1177 unsigned int i = 1; 1171 TESTSCAN( 0, -1, special, 0, "%x", &i );1172 CHECK_EQUAL( i, 1 ); 1173 } 1178 TESTSCAN( 0, -1, special, 0, SCANPARMS( "%x", &i ) ); /* May fail on regtest */ 1179 CHECK_EQUAL( i, 1 ); /* FIXME */ 1180 } trunk/functions/stdio/sscan_sources.incl
r433 r434 18 18 19 19 /* sscan */ 20 #define TESTSCAN( result, count, source, offset, format,... ) \20 #define TESTSCAN( result, count, source, offset, ... ) \ 21 21 do \ 22 22 { \ 23 23 int n = -1; \ 24 TESTCASE( SCANFUNC( source + offset, format "%n", __VA_ARGS__, &n ) == result ); \ 25 TESTCASE( n == count ); \ 24 int res = SCANFUNC( source + offset, __VA_ARGS__ ); \ 25 if ( res != result ) \ 26 { \ 27 rc += 1; \ 28 printf( "FAILED: " __FILE__ ", line %d - expected result %d, got %d\n", __LINE__, result, res ); \ 29 } \ 30 if ( n != count ) \ 31 { \ 32 rc += 1; \ 33 printf( "FAILED: " __FILE__ ", line %d - expected count %d, got %d\n", __LINE__, count, n ); \ 34 } \ 26 35 } while ( 0 ) 27 36 37 #define SCAN( format ) format "%n", &n 38 #define SCANPARMS( format, ... ) format "%n", __VA_ARGS__, &n 39 40 #define _PDCLIB_SSCAN 41
