*Much* better.
[fw/pdclib] / testing / printf_testcases.incl
index bcdb9f456a3243f1eb656e28bd8d01fd84bd5325..f6a44dc369cbfe25535607c09b3400bcfd7ff9d5 100644 (file)
 #endif
 
 
-    TESTCASE( testprintf( target, "%hhd", CHAR_MIN ) == 4 );
-    TESTCASE_SPRINTF( "-128" );
-    TESTCASE( testprintf( target, "%hhd", CHAR_MAX ) == 3 );
-    TESTCASE_SPRINTF( "127" );
-    TESTCASE( testprintf( target, "%hhd", 0 ) == 1 );
-    TESTCASE_SPRINTF( "0" );
-    TESTCASE( testprintf( target, "%hd", SHRT_MIN ) == 6 );
-    TESTCASE_SPRINTF( "-32768" );
-    TESTCASE( testprintf( target, "%hd", SHRT_MAX ) == 5 );
-    TESTCASE_SPRINTF( "32767" );
-    TESTCASE( testprintf( target, "%hd", 0 ) == 1 );
-    TESTCASE_SPRINTF( "0" );
-    TESTCASE( testprintf( target, "%d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%d", 0 ) == 1 );
-    TESTCASE_SPRINTF( "0" );
-    TESTCASE( testprintf( target, "%ld", LONG_MIN ) == LONG_DIG + 1 );
-    TESTCASE_SPRINTF( "-" LONG_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%ld", LONG_MAX ) == LONG_DIG );
-    TESTCASE_SPRINTF( LONG_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%ld", 0l ) == 1 );
-    TESTCASE_SPRINTF( "0" );
-    TESTCASE( testprintf( target, "%lld", LLONG_MIN ) == LLONG_DIG + 1 );
-    TESTCASE_SPRINTF( "-" LLONG_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%lld", LLONG_MAX ) == LLONG_DIG );
-    TESTCASE_SPRINTF( LLONG_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%lld", 0ll ) );
-    TESTCASE_SPRINTF( "0" );
-    TESTCASE( testprintf( target, "%hhu", UCHAR_MAX ) == 3 );
-    TESTCASE_SPRINTF( "255" );
-    TESTCASE( testprintf( target, "%hhu", (unsigned char)-1 ) == 3 );
-    TESTCASE_SPRINTF( "255" );
-    TESTCASE( testprintf( target, "%hu", USHRT_MAX ) == 5 );
-    TESTCASE_SPRINTF( "65535" );
-    TESTCASE( testprintf( target, "%hu", (unsigned short)-1 ) == 5 );
-    TESTCASE_SPRINTF( "65535" );
-    TESTCASE( testprintf( target, "%u", UINT_MAX ) == UINT_DIG );
-    TESTCASE_SPRINTF( UINT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%u", -1u ) == UINT_DIG );
-    TESTCASE_SPRINTF( UINT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%lu", ULONG_MAX ) == ULONG_DIG );
-    TESTCASE_SPRINTF( ULONG_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%lu", -1ul ) == ULONG_DIG );
-    TESTCASE_SPRINTF( ULONG_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%llu", ULLONG_MAX ) == ULLONG_DIG );
-    TESTCASE_SPRINTF( ULLONG_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%llu", -1ull ) == ULLONG_DIG );
-    TESTCASE_SPRINTF( ULLONG_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%X", UINT_MAX ) == (int)strlen( INT_HEXDIG ) + 1 );
-    TESTCASE_SPRINTF( "F" INT_HEXDIG );
-    TESTCASE( testprintf( target, "%#X", -1u ) == (int)strlen( INT_HEXDIG ) + 3 );
-    TESTCASE_SPRINTF( "0XF" INT_HEXDIG );
-    TESTCASE( testprintf( target, "%x", UINT_MAX ) == (int)strlen( INT_HEXDIG ) + 1 );
-    TESTCASE_SPRINTF( "f" INT_hexdig );
-    TESTCASE( testprintf( target, "%#x", -1u ) == (int)strlen( INT_HEXDIG ) + 3 );
-    TESTCASE_SPRINTF( "0xf" INT_hexdig );
-    TESTCASE( testprintf( target, "%o", UINT_MAX ) == (int)strlen( INT_OCTDIG ) );
-    TESTCASE_SPRINTF( INT_OCTDIG );
-    TESTCASE( testprintf( target, "%#o", -1u ) == (int)strlen( INT_OCTDIG ) + 1 );
-    TESTCASE_SPRINTF( "0" INT_OCTDIG );
+    PRINTF_TEST( 4,   "-128", "%hhd", CHAR_MIN );
+    PRINTF_TEST( 3,    "127", "%hhd", CHAR_MAX );
+    PRINTF_TEST( 1,      "0", "%hhd", 0 );
+    PRINTF_TEST( 6, "-32768",  "%hd", SHRT_MIN );
+    PRINTF_TEST( 5,  "32767",  "%hd", SHRT_MAX );
+    PRINTF_TEST( 1,      "0",  "%hd", 0 );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%d", INT_MAX );
+    PRINTF_TEST( 1, "0", "%d", 0 );
+    PRINTF_TEST( LONG_DIG + 1, "-" LONG_MIN_DEZ_STR, "%ld", LONG_MIN );
+    PRINTF_TEST( LONG_DIG, LONG_MAX_DEZ_STR, "%ld", LONG_MAX );
+    PRINTF_TEST( 1, "0", "%ld", 0l );
+    PRINTF_TEST( LLONG_DIG + 1, "-" LLONG_MIN_DEZ_STR, "%lld", LLONG_MIN );
+    PRINTF_TEST( LLONG_DIG, LLONG_MAX_DEZ_STR, "%lld", LLONG_MAX );
+    PRINTF_TEST( 1, "0", "%lld", 0ll );
+    PRINTF_TEST( 3, "255", "%hhu", UCHAR_MAX );
+    PRINTF_TEST( 3, "255", "%hhu", (unsigned char)-1 );
+    PRINTF_TEST( 5, "65535", "%hu", USHRT_MAX );
+    PRINTF_TEST( 5, "65535", "%hu", (unsigned short)-1 );
+    PRINTF_TEST( UINT_DIG, UINT_MAX_DEZ_STR, "%u", UINT_MAX );
+    PRINTF_TEST( UINT_DIG, UINT_MAX_DEZ_STR, "%u", -1u );
+    PRINTF_TEST( ULONG_DIG, ULONG_MAX_DEZ_STR, "%lu", ULONG_MAX );
+    PRINTF_TEST( ULONG_DIG, ULONG_MAX_DEZ_STR, "%lu", -1ul );
+    PRINTF_TEST( ULLONG_DIG, ULLONG_MAX_DEZ_STR, "%llu", ULLONG_MAX );
+    PRINTF_TEST( ULLONG_DIG, ULLONG_MAX_DEZ_STR, "%llu", -1ull );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 1, "F" INT_HEXDIG, "%X", UINT_MAX );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 3, "0XF" INT_HEXDIG, "%#X", -1u );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 1, "f" INT_hexdig, "%x", UINT_MAX );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 3, "0xf" INT_hexdig, "%#x", -1u );
+    PRINTF_TEST( (int)strlen( INT_OCTDIG ), INT_OCTDIG, "%o", UINT_MAX );
+    PRINTF_TEST( (int)strlen( INT_OCTDIG ) + 1, "0" INT_OCTDIG, "%#o", -1u );
 #if 0
     /* TODO: This test case is broken, doesn't test what it was intended to. */
-    TESTCASE( testprintf( target, "%.0#o", 0 ) == 5 );
-    TESTCASE_SPRINTF( "%.0#o" );
+    PRINTF_TEST( 5, "%.0#o", "%.0#o", 0 );
 #endif
-    TESTCASE( testprintf( target, "%+d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%+d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%+d", 0 ) == 2 );
-    TESTCASE_SPRINTF( "+0" );
-    TESTCASE( testprintf( target, "%+u", UINT_MAX ) == UINT_DIG );
-    TESTCASE_SPRINTF( UINT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%+u", -1u ) == UINT_DIG );
-    TESTCASE_SPRINTF( UINT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "% d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "% d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( " " INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "% d", 0 ) == 2 );
-    TESTCASE_SPRINTF( " 0" );
-    TESTCASE( testprintf( target, "% u", UINT_MAX ) == UINT_DIG );
-    TESTCASE_SPRINTF( UINT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "% u", -1u ) == UINT_DIG );
-    TESTCASE_SPRINTF( UINT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%" INT_DIG_LESS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%" INT_DIG_LESS1 "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%" sym2s(INT_DIG) "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%" sym2s(INT_DIG) "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%" INT_DIG_PLUS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%" INT_DIG_PLUS1 "d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( " " INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%" INT_DIG_PLUS2 "d", INT_MIN ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( " -" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%" INT_DIG_PLUS2 "d", INT_MAX ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( "  " INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%-" INT_DIG_LESS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%-" INT_DIG_LESS1 "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%-" sym2s(INT_DIG) "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%-" sym2s(INT_DIG) "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%-" INT_DIG_PLUS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%-" INT_DIG_PLUS1 "d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR " " );
-    TESTCASE( testprintf( target, "%-" INT_DIG_PLUS2 "d", INT_MIN ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR " " );
-    TESTCASE( testprintf( target, "%-" INT_DIG_PLUS2 "d", INT_MAX ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR "  " );
-    TESTCASE( testprintf( target, "%0" INT_DIG_LESS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" INT_DIG_LESS1 "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" sym2s(INT_DIG) "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" sym2s(INT_DIG) "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" INT_DIG_PLUS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" INT_DIG_PLUS1 "d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "0" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" INT_DIG_PLUS2 "d", INT_MIN ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( "-0" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%0" INT_DIG_PLUS2 "d", INT_MAX ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( "00" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%-0" INT_DIG_LESS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%-0" INT_DIG_LESS1 "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%-0" sym2s(INT_DIG) "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%-0" sym2s(INT_DIG) "d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%-0" INT_DIG_PLUS1 "d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%-0" INT_DIG_PLUS1 "d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR " " );
-    TESTCASE( testprintf( target, "%-0" INT_DIG_PLUS2 "d", INT_MIN ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR " " );
-    TESTCASE( testprintf( target, "%-0" INT_DIG_PLUS2 "d", INT_MAX ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR "  " );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%+d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%+d", INT_MAX );
+    PRINTF_TEST( 2, "+0", "%+d", 0 );
+    PRINTF_TEST( UINT_DIG, UINT_MAX_DEZ_STR, "%+u", UINT_MAX );
+    PRINTF_TEST( UINT_DIG, UINT_MAX_DEZ_STR, "%+u", -1u );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "% d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, " " INT_MAX_DEZ_STR, "% d", INT_MAX );
+    PRINTF_TEST( 2, " 0", "% d", 0 );
+    PRINTF_TEST( UINT_DIG, UINT_MAX_DEZ_STR, "% u", UINT_MAX );
+    PRINTF_TEST( UINT_DIG, UINT_MAX_DEZ_STR, "% u", -1u );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%" INT_DIG_LESS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%" INT_DIG_LESS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%" sym2s(INT_DIG) "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%" sym2s(INT_DIG) "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%" INT_DIG_PLUS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, " " INT_MAX_DEZ_STR, "%" INT_DIG_PLUS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 2, " -" INT_MIN_DEZ_STR, "%" INT_DIG_PLUS2 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 2, "  " INT_MAX_DEZ_STR, "%" INT_DIG_PLUS2 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%-" INT_DIG_LESS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%-" INT_DIG_LESS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%-" sym2s(INT_DIG) "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%-" sym2s(INT_DIG) "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%-" INT_DIG_PLUS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, INT_MAX_DEZ_STR " ", "%-" INT_DIG_PLUS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 2, "-" INT_MIN_DEZ_STR " ", "%-" INT_DIG_PLUS2 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 2, INT_MAX_DEZ_STR "  ", "%-" INT_DIG_PLUS2 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%0" INT_DIG_LESS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%0" INT_DIG_LESS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%0" sym2s(INT_DIG) "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%0" sym2s(INT_DIG) "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%0" INT_DIG_PLUS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, "0" INT_MAX_DEZ_STR, "%0" INT_DIG_PLUS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 2, "-0" INT_MIN_DEZ_STR, "%0" INT_DIG_PLUS2 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 2, "00" INT_MAX_DEZ_STR, "%0" INT_DIG_PLUS2 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%-0" INT_DIG_LESS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%-0" INT_DIG_LESS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%-0" sym2s(INT_DIG) "d", INT_MIN );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%-0" sym2s(INT_DIG) "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%-0" INT_DIG_PLUS1 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, INT_MAX_DEZ_STR " ", "%-0" INT_DIG_PLUS1 "d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 2, "-" INT_MIN_DEZ_STR " ", "%-0" INT_DIG_PLUS2 "d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 2, INT_MAX_DEZ_STR "  ", "%-0" INT_DIG_PLUS2 "d", INT_MAX );
     /* FIXME: This test not yet 32/64 bit agnostic */
-    TESTCASE( testprintf( target, "%030.20d", INT_MAX ) == 30 );
-    TESTCASE_SPRINTF( "          00000000002147483647" );
-    TESTCASE( testprintf( target, "%.6x", UINT_MAX ) == (int)strlen( INT_HEXDIG ) + 1 );
-    TESTCASE_SPRINTF( "f" INT_hexdig );
-    TESTCASE( testprintf( target, "%#6.3x", UINT_MAX ) == (int)strlen( INT_HEXDIG ) + 3 );
-    TESTCASE_SPRINTF( "0xf" INT_hexdig );
-    TESTCASE( testprintf( target, "%#3.6x", UINT_MAX ) == (int)strlen( INT_HEXDIG ) + 3 );
-    TESTCASE_SPRINTF( "0xf" INT_hexdig );
-    TESTCASE( testprintf( target, "%.6d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%6.3d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%3.6d", INT_MIN ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "-" INT_MIN_DEZ_STR );
-    TESTCASE( testprintf( target, "%#0.6x", UINT_MAX ) == UINT_DIG );
-    TESTCASE_SPRINTF( "0xf" INT_hexdig );
-    TESTCASE( testprintf( target, "%#06.3x", UINT_MAX ) == UINT_DIG );
-    TESTCASE_SPRINTF( "0xf" INT_hexdig );
-    TESTCASE( testprintf( target, "%#03.6x", UINT_MAX ) == UINT_DIG );
-    TESTCASE_SPRINTF( "0xf" INT_hexdig );
-    TESTCASE( testprintf( target, "%#0.6d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%#06.3d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%#03.6d", INT_MAX ) == INT_DIG );
-    TESTCASE_SPRINTF( INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%#+.6d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%#+6.3d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%#+3.6d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%+0.6d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%+06.3d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "%+03.6d", INT_MAX ) == INT_DIG + 1 );
-    TESTCASE_SPRINTF( "+" INT_MAX_DEZ_STR );
+    PRINTF_TEST( 30, "          00000000002147483647", "%030.20d", INT_MAX );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 1, "f" INT_hexdig, "%.6x", UINT_MAX );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 3, "0xf" INT_hexdig, "%#6.3x", UINT_MAX );
+    PRINTF_TEST( (int)strlen( INT_HEXDIG ) + 3, "0xf" INT_hexdig, "%#3.6x", UINT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%.6d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1, "-" INT_MIN_DEZ_STR, "%6.3d", INT_MIN );
+    PRINTF_TEST( INT_DIG + 1., "-" INT_MIN_DEZ_STR, "%3.6d", INT_MIN );
+    PRINTF_TEST( UINT_DIG, "0xf" INT_hexdig, "%#0.6x", UINT_MAX );
+    PRINTF_TEST( UINT_DIG, "0xf" INT_hexdig, "%#06.3x", UINT_MAX );
+    PRINTF_TEST( UINT_DIG, "0xf" INT_hexdig, "%#03.6x", UINT_MAX );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%#0.6d", INT_MAX );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%#06.3d", INT_MAX );
+    PRINTF_TEST( INT_DIG, INT_MAX_DEZ_STR, "%#03.6d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%#+.6d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%#+6.3d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%#+3.6d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%+0.6d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%+06.3d", INT_MAX );
+    PRINTF_TEST( INT_DIG + 1, "+" INT_MAX_DEZ_STR, "%+03.6d", INT_MAX );
 #ifndef TEST_CONVERSION_ONLY
-    TESTCASE( testprintf( target, "- %d", INT_MAX ) == INT_DIG + 2 );
-    TESTCASE_SPRINTF( "- " INT_MAX_DEZ_STR );
-    TESTCASE( testprintf( target, "- %d %% %d", INT_MAX, INT_MIN ) == INT_DIG * 2 + 6 );
-    TESTCASE_SPRINTF( "- " INT_MAX_DEZ_STR " % -" INT_MIN_DEZ_STR );
+    PRINTF_TEST( INT_DIG + 2, "- " INT_MAX_DEZ_STR, "- %d", INT_MAX );
+    PRINTF_TEST( INT_DIG * 2 + 6, "- " INT_MAX_DEZ_STR, " % -" INT_MIN_DEZ_STR, INT_MIN );
 #endif
-    TESTCASE( testprintf( target, "%c", 'x' ) == 1 );
-    TESTCASE_SPRINTF( "x" );
-    TESTCASE( testprintf( target, "%s", "abcdef" ) == 6 );
-    TESTCASE_SPRINTF( "abcdef" );
+    PRINTF_TEST( 1, "x", "%c", 'x' );
+    PRINTF_TEST( 6, "abcdef", "%s", "abcdef" );
     /* FIXME: This test not yet 32/64 bit agnostic */
-    TESTCASE( testprintf( target, "%p", (void *)0xdeadbeef ) == 10 );
-    TESTCASE_SPRINTF( "0xdeadbeef" );
-    TESTCASE( testprintf( target, "%#6x", 1 ) == 6 );
-    TESTCASE_SPRINTF( "   0x1" );
+    PRINTF_TEST( 10, "0xdeadbeef", "%p", (void *)0xdeadbeef );
+    PRINTF_TEST( 6, "   0x1", "%#6x", 1 );
 #ifndef TEST_CONVERSION_ONLY
     {
         int val1, val2;
-        TESTCASE( testprintf( target, "123456%n789%n", &val1, &val2 ) == 9 );
-        TESTCASE_SPRINTF( "123456789" ); /* FIXME */
+        PRINTF_TEST( 9, "123456789", "123456%n789%n", &val1, &val2 );
         TESTCASE( val1 == 6 );
         TESTCASE( val2 == 9 );
     }