X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=testing%2Fprintf_testcases.h;h=e024784d3c42d136689bdf9206f870e17a5923d1;hp=2514540c5061dd838066ae8c3e1afea486996fe4;hb=d193d54478243fbd9e68649e0eb534c72d6aea0d;hpb=c107b28a9448621c675fe2add8c5517b34f44646 diff --git a/testing/printf_testcases.h b/testing/printf_testcases.h index 2514540..e024784 100644 --- a/testing/printf_testcases.h +++ b/testing/printf_testcases.h @@ -1,152 +1,4 @@ { - -/* Be afraid. Be very afraid. - Virtually everything in the printf() / scanf() test drivers is heavily - depending on the platform, i.e. the width of the integer values. Since - we need widths, string representations in hex, octal and decimal and - whatnot, there is some heavy macro abuse coming up... -*/ - -#define sym2v( x ) #x -#define sym2s( x ) sym2v( x ) - -#if INT_MAX >> 15 == 1 - -#define UINT_DIG 5 -#define INT_DIG 5 -#define INT_DIG_LESS1 "4" -#define INT_DIG_PLUS1 "6" -#define INT_DIG_PLUS2 "7" -#define INT_HEXDIG "FFF" -#define INT_hexdig "fff" -#define INT_OCTDIG "177777" -#define INT_MAX_DEZ_STR "32767" -#define INT_MIN_DEZ_STR "32768" -#define UINT_MAX_DEZ_STR "65535" -#define INT_MAX_OCT_STR -#define INT_MIN_OCT_STR -#define UINT_MAX_OCT_STR -#define INT_MAX_HEX_STR -#define INT_MIN_HEX_STR -#define UINT_MAX_HEX_STR - -#elif UINT_MAX >> 31 == 1 - -#define UINT_DIG 10 -#define INT_DIG 10 -#define INT_DIG_LESS1 "9" -#define INT_DIG_PLUS1 "11" -#define INT_DIG_PLUS2 "12" -#define INT_HEXDIG "FFFFFFF" -#define INT_hexdig "fffffff" -#define INT_OCTDIG "37777777777" -#define INT_MAX_DEZ_STR "2147483647" -#define INT_MIN_DEZ_STR "2147483648" -#define UINT_MAX_DEZ_STR "4294967295" -#define INT_MAX_OCT_STR -#define INT_MIN_OCT_STR -#define UINT_MAX_OCT_STR -#define INT_MAX_HEX_STR -#define INT_MIN_HEX_STR -#define UINT_MAX_HEX_STR - -#elif UINT_MAX >> 63 == 1 - -#define UINT_DIG 20 -#define INT_DIG 19 -#define INT_DIG_LESS1 "18" -#define INT_DIG_PLUS1 "20" -#define INT_DIG_PLUS2 "21" -#define INT_HEXDIG "FFFFFFFFFFFFFFF" -#define INT_hexdig "fffffffffffffff" -#define INT_OCTDIG "1777777777777777777777" -#define INT_MAX_DEZ_STR "9223372036854775807" -#define INT_MIN_DEZ_STR "9223372036854775808" -#define UINT_MAX_DEZ_STR "18446744073709551615" -#define INT_MAX_OCT_STR -#define INT_MIN_OCT_STR -#define UINT_MAX_OCT_STR -#define INT_MAX_HEX_STR -#define INT_MIN_HEX_STR -#define UINT_MAX_HEX_STR - -#else - -#error Unsupported width of 'int' (neither 16, 32, nor 64 bit). - -#endif - - -#if ULONG_MAX >> 31 == 1 - -#define ULONG_DIG 10 -#define LONG_DIG 10 -#define LONG_MAX_DEZ_STR "2147483647" -#define LONG_MIN_DEZ_STR "2147483648" -#define ULONG_MAX_DEZ_STR "4294967295" -#define LONG_MAX_OCT_STR -#define LONG_MIN_OCT_STR -#define ULONG_MAX_OCT_STR -#define LONG_MAX_HEX_STR -#define LONG_MIN_HEX_STR -#define ULONG_MAX_HEX_STR - -#elif ULONG_MAX >> 63 == 1 - -#define ULONG_DIG 20 -#define LONG_DIG 19 -#define LONG_MAX_DEZ_STR "9223372036854775807" -#define LONG_MIN_DEZ_STR "9223372036854775808" -#define ULONG_MAX_DEZ_STR "18446744073709551615" -#define LONG_MAX_OCT_STR -#define LONG_MIN_OCT_STR -#define ULONG_MAX_OCT_STR -#define LONG_MAX_HEX_STR -#define LONG_MIN_HEX_STR -#define ULONG_MAX_HEX_STR - -#else - -#error Unsupported width of 'long' (neither 32 nor 64 bit). - -#endif - - -#if ULLONG_MAX >> 63 == 1 - -#define ULLONG_DIG 20 -#define LLONG_DIG 19 -#define LLONG_MAX_DEZ_STR "9223372036854775807" -#define LLONG_MIN_DEZ_STR "9223372036854775808" -#define ULLONG_MAX_DEZ_STR "18446744073709551615" -#define LLONG_MAX_OCT_STR -#define LLONG_MIN_OCT_STR -#define ULLONG_MAX_OCT_STR -#define LLONG_MAX_HEX_STR -#define LLONG_MIN_HEX_STR -#define ULLONG_MAX_HEX_STR - -#elif ULLONG_MAX >> 127 == 1 - -#define ULLONG_DIG 38 -#define LLONG_DIG 38 -#define LLONG_MAX_DEZ_STR "170141183460469231731687303715884105727" -#define LLONG_MIN_DEZ_STR "170141183460469231731687303715884105728" -#define ULLONG_MAX_DEZ_STR "340282366920938463463374607431768211455" -#define LLONG_MAX_OCT_STR -#define LLONG_MIN_OCT_STR -#define ULLONG_MAX_OCT_STR -#define LLONG_MAX_HEX_STR -#define LLONG_MIN_HEX_STR -#define ULLONG_MAX_HEX_STR - -#else - -#error Unsupported width of 'long long' (neither 64 nor 128 bit). - -#endif - - PRINTF_TEST( 4, "-128", "%hhd", CHAR_MIN ); PRINTF_TEST( 3, "127", "%hhd", CHAR_MAX ); PRINTF_TEST( 1, "0", "%hhd", 0 );