X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdio%2Fscanf_testcases.incl;h=a32d0cae35a9d040c16993d31c125032e205ee4d;hb=cbd7fc65775365c1c63b565cc7aee1093a069205;hp=71ddccce42b990564fc503b467a9d16f9d65c58b;hpb=f56f5d756f412e9c7058e2af4e36bc1de21dd642;p=pdclib diff --git a/functions/stdio/scanf_testcases.incl b/functions/stdio/scanf_testcases.incl index 71ddccc..a32d0ca 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,31 +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 ) ); + 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" ); } @@ -1118,10 +1118,8 @@ CHECK_FALSE( memcmp( buffer, "abc", 4 ) ); } +#ifndef REGTEST // special bordercase - { - // reading -0x, x - unsigned char i = 1; /* Most existing libraries disagree with this test case, so a little explanation of why PDCLib chose the implementation it did might be necessary. All references are from ISO/IEC 9899:1999 "Programming @@ -1162,30 +1160,22 @@ - 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 */ + { + // reading -0x, x + unsigned char i = 1; + TESTSCAN( 0, -1, special, 0, SCANPARMS( "%hhx", &i ) ); 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 */ + TESTSCAN( 0, -1, special, 0, SCANPARMS( "%hx", &i ) ); 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 */ + TESTSCAN( 0, -1, special, 0, SCANPARMS( "%x", &i ) ); CHECK_EQUAL( i, 1 ); /* FIXME */ } +#endif