X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdio%2Fscanf_testcases.incl;h=3a2b54372f7c85a8e2d279f06ed60a6c04fdba65;hb=e225d3c69eaaeb3203de2532bb4eb37d1f813de7;hp=e9680bc27a0a4feeffdc333ae4487a1a71a90971;hpb=61cd4c099107b37d2b485c2ceb21ad661c899309;p=pdclib diff --git a/functions/stdio/scanf_testcases.incl b/functions/stdio/scanf_testcases.incl index e9680bc..3a2b543 100644 --- a/functions/stdio/scanf_testcases.incl +++ b/functions/stdio/scanf_testcases.incl @@ -752,27 +752,27 @@ CHECK_FEQUAL( i, -127, unsigned char, "%hhu" ); } { - // reading 0x80, i + // reading -0x80, i signed char i = -1; - TESTSCAN( 1, 4, hexadecimal, 18, SCANPARMS( "%hhi", &i ) ); + TESTSCAN( 1, 5, hexadecimal, 18, SCANPARMS( "%hhi", &i ) ); CHECK_FEQUAL( i, -128, signed char, "%hhd" ); } { // reading ff, x unsigned char i = -1; - TESTSCAN( 1, 2, hexadecimal, 25, SCANPARMS( "%hhx", &i ) ); + TESTSCAN( 1, 2, hexadecimal, 26, SCANPARMS( "%hhx", &i ) ); CHECK_EQUAL( i, 0xff ); } { // reading 0xff, x unsigned char i = -1; - TESTSCAN( 1, 4, hexadecimal, 23, SCANPARMS( "%hhx", &i ) ); + TESTSCAN( 1, 4, hexadecimal, 24, SCANPARMS( "%hhx", &i ) ); CHECK_EQUAL( i, 255 ); } { // reading 0xff, i signed char i = 0; - TESTSCAN( 1, 4, hexadecimal, 23, SCANPARMS( "%hhi", &i ) ); + TESTSCAN( 1, 4, hexadecimal, 24, SCANPARMS( "%hhi", &i ) ); CHECK_EQUAL( i, -1 ); } { @@ -802,37 +802,37 @@ { // reading 7fff, x unsigned short i = -1; - TESTSCAN( 1, 4, hexadecimal, 31, SCANPARMS( "%hx", &i ) ); + TESTSCAN( 1, 4, hexadecimal, 32, SCANPARMS( "%hx", &i ) ); CHECK_EQUAL( i, 32767 ); } { // reading -0x7fff, x unsigned short i = -1; - TESTSCAN( 1, 7, hexadecimal, 28, SCANPARMS( "%hx", &i ) ); + TESTSCAN( 1, 7, hexadecimal, 29, SCANPARMS( "%hx", &i ) ); CHECK_FEQUAL( i, -32767, unsigned short, "%hu" ); } { - // reading 0x8000, i + // reading -0x8000, i signed short i = -1; - TESTSCAN( 1, 6, hexadecimal, 36, SCANPARMS( "%hi", &i ) ); + TESTSCAN( 1, 7, hexadecimal, 37, SCANPARMS( "%hi", &i ) ); CHECK_FEQUAL( i, -32768, signed short, "%hd" ); } { // reading ffff, x unsigned short i = -1; - TESTSCAN( 1, 4, hexadecimal, 45, SCANPARMS( "%hx", &i ) ); + TESTSCAN( 1, 4, hexadecimal, 47, SCANPARMS( "%hx", &i ) ); CHECK_EQUAL( i, 65535 ); } { // reading 0xffff, x unsigned short i = -1; - TESTSCAN( 1, 6, hexadecimal, 43, SCANPARMS( "%hx", &i ) ); + TESTSCAN( 1, 6, hexadecimal, 45, SCANPARMS( "%hx", &i ) ); CHECK_EQUAL( i, 65535 ); } { // reading 0xffff, i signed short i = 0; - TESTSCAN( 1, 6, hexadecimal, 43, SCANPARMS( "%hi", &i ) ); + TESTSCAN( 1, 6, hexadecimal, 45, SCANPARMS( "%hi", &i ) ); CHECK_FEQUAL( i, -1, signed short, "%hd" ); } { @@ -862,32 +862,31 @@ { // reading 7fffffff, x unsigned int i = -1; - TESTSCAN( 1, 8, hexadecimal, 53, SCANPARMS( "%x", &i ) ); + TESTSCAN( 1, 8, hexadecimal, 55, SCANPARMS( "%x", &i ) ); CHECK_EQUAL( i, 2147483647 ); } { // reading -0x7fffffff, x unsigned int i = -1; - TESTSCAN( 1, 11, hexadecimal, 50, SCANPARMS( "%x", &i ) ); + TESTSCAN( 1, 11, hexadecimal, 52, SCANPARMS( "%x", &i ) ); CHECK_FEQUAL( i, -2147483647, unsigned int, "%u" ); } { - // reading 0x80000000, i + // reading -0x80000000, i signed int i = -1; - TESTSCAN( 1, 10, hexadecimal, 62, SCANPARMS( "%i", &i ) ); - printf( "found %d, expected -2147483648\n", i ); + TESTSCAN( 1, 11, hexadecimal, 64, SCANPARMS( "%i", &i ) ); CHECK_FEQUAL( i, -2147483648, signed int, "%d" ); /* FIXME */ } { // reading ffffffff, x unsigned int i = -1; - TESTSCAN( 1, 8, hexadecimal, 75, SCANPARMS( "%x", &i ) ); + TESTSCAN( 1, 8, hexadecimal, 78, SCANPARMS( "%x", &i ) ); CHECK_FEQUAL( i, 4294967295, unsigned int, "%d" ); } { // reading 0xffffffff, x unsigned int i = -1; - TESTSCAN( 1, 10, hexadecimal, 73, SCANPARMS( "%x", &i ) ); + TESTSCAN( 1, 10, hexadecimal, 76, SCANPARMS( "%x", &i ) ); CHECK_FEQUAL( i, 4294967295, unsigned int, "%d" ); } @@ -1163,18 +1162,30 @@ - The conversion should therefore result in a matching failure according to 7.19.6.2 paragraph 10. */ +#ifdef REGTEST + printf( " The following is likely to fail. Check stdio/scanf_testcases.c\n" + " for an explanation why.\n" ); +#endif TESTSCAN( 0, -1, special, 0, SCANPARMS( "%hhx", &i ) ); /* May fail on regtest */ CHECK_EQUAL( i, 1 ); /* FIXME */ } { // reading -0x, x unsigned short i = 1; +#ifdef REGTEST + printf( " The following is likely to fail. Check stdio/scanf_testcases.c\n" + " for an explanation why.\n" ); +#endif TESTSCAN( 0, -1, special, 0, SCANPARMS( "%hx", &i ) ); /* May fail on regtest */ CHECK_EQUAL( i, 1 ); /* FIXME */ } { // reading -0x, x unsigned int i = 1; +#ifdef REGTEST + printf( " The following is likely to fail. Check stdio/scanf_testcases.c\n" + " for an explanation why.\n" ); +#endif TESTSCAN( 0, -1, special, 0, SCANPARMS( "%x", &i ) ); /* May fail on regtest */ CHECK_EQUAL( i, 1 ); /* FIXME */ }