aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/moulitest_tests.c395
-rw-r--r--tests/pft_tests.c1730
-rw-r--r--tests/tests.h52
3 files changed, 2177 insertions, 0 deletions
diff --git a/tests/moulitest_tests.c b/tests/moulitest_tests.c
new file mode 100644
index 0000000..296f0ed
--- /dev/null
+++ b/tests/moulitest_tests.c
@@ -0,0 +1,395 @@
+#include <limits.h>
+#include "../header.h"
+
+
+void test_moulitest_00(void)
+{
+ ASSERT_PRINTF("This is a simple test.");
+ ASSERT_PRINTF("This is a simple test.\nSecond sentence.\n");
+ ASSERT_PRINTF("");
+ ASSERT_PRINTF("\n");
+}
+
+void test_moulitest_01(void)
+{
+ ASSERT_PRINTF("%s", "abc");
+ ASSERT_PRINTF("111%s333", "222");
+ ASSERT_PRINTF("%s333", "222");
+ ASSERT_PRINTF("111%s", "222");
+ ASSERT_PRINTF("{%s}", 0);
+ ASSERT_PRINTF("{%s}", "");
+}
+
+void test_moulitest_02(void)
+{
+ ASSERT_PRINTF("111%s333%s555", "222", "444");
+ ASSERT_PRINTF("111%s333%s555%saaa%sccc", "222", "444", "666", "bbb");
+ ASSERT_PRINTF("%s%s%s%s%s", "1", "2", "3", "4", "5");
+}
+
+void test_moulitest_03(void)
+{
+ ASSERT_PRINTF("%d", 42);
+ ASSERT_PRINTF("%d", -42);
+ ASSERT_PRINTF("before %d after", 42);
+ ASSERT_PRINTF("%d%d%d%d%d", 1, -2, 3, -4, 5);
+ ASSERT_PRINTF("a%db%dc%dd", 1, -2, 3);
+ ASSERT_PRINTF("%d", INT_MAX);
+ ASSERT_PRINTF("%d", INT_MIN);
+}
+
+void test_moulitest_04(void)
+{
+ int i;
+ unsigned long l;
+ char *str;
+
+ ASSERT_PRINTF("%p", &i);
+ ASSERT_PRINTF("%p", &l);
+ ASSERT_PRINTF("%p", &str);
+ ASSERT_PRINTF("%p", &strlen);
+ ASSERT_PRINTF("%p", 0);
+}
+
+void test_moulitest_05(void)
+{
+ ASSERT_PRINTF("%%");
+ ASSERT_PRINTF("aa%%bb");
+ ASSERT_PRINTF("%%%%%%%%%%");
+ ASSERT_PRINTF(".%%.%%.%%.%%.%%.%%.%%.%%.");
+ ASSERT_PRINTF("%");
+ ASSERT_PRINTF("{% %}");
+}
+
+void test_moulitest_06(void)
+{
+ ASSERT_PRINTF("s: %s, p: %p, d:%d", "a string", &test_moulitest_06, 42);
+ ASSERT_PRINTF("%s%p%d%d%p%s%p%p%s", "a", &free, 1, 2, &malloc, "b", &free, &malloc, "c");
+}
+
+void test_moulitest_09(void)
+{
+ ASSERT_PRINTF("%i", 42);
+ ASSERT_PRINTF("%i", -42);
+ ASSERT_PRINTF("before %i after", 42);
+ ASSERT_PRINTF("%i%i%i%i%i", 1, -2, 3, -4, 5);
+ ASSERT_PRINTF("a%ib%ic%id", 1, -2, 3);
+}
+
+void test_moulitest_12(void)
+{
+ ASSERT_PRINTF("%u", 42);
+ ASSERT_PRINTF("before %u after", 42);
+ ASSERT_PRINTF("%u%u%u%u%u", 1, 100, 999, 42, 999988888);
+ ASSERT_PRINTF("a%ub%uc%ud", 0, 55555, 100000);
+ ASSERT_PRINTF("%u", UINT_MAX);
+}
+
+void test_moulitest_14(void)
+{
+ ASSERT_PRINTF("%x", 42);
+ ASSERT_PRINTF("before %x after", 42);
+ ASSERT_PRINTF("%x%x%x%x%x", 1, 100, 999, 42, 999988888);
+ ASSERT_PRINTF("a%xb%xc%xd", 0, 55555, 100000);
+ ASSERT_PRINTF("%x, %x", 0, UINT_MAX);
+}
+
+void test_moulitest_15(void)
+{
+ ASSERT_PRINTF("%X", 42);
+ ASSERT_PRINTF("before %X after", 42);
+ ASSERT_PRINTF("%X%X%X%X%X", 1, 100, 999, 42, 999988888);
+ ASSERT_PRINTF("a%Xb%Xc%Xd", 0, 55555, 100000);
+ ASSERT_PRINTF("%X, %X", 0, UINT_MAX);
+}
+
+void test_moulitest_16(void)
+{
+ ASSERT_PRINTF("%c", 'c');
+ ASSERT_PRINTF("%c%c", '4', '2');
+ ASSERT_PRINTF("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c \
+ %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\
+ %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
+ ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.',
+ '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=',
+ '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
+ 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\',
+ ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
+ 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}');
+ ASSERT_PRINTF("%c", 0);
+}
+
+void test_moulitest_18(void)
+{
+ char c;
+ ASSERT_PRINTF("%s %d %p %% %x", "bonjour ", 42, &free, 42);
+ ASSERT_PRINTF("%s%d%p%%%i%o%u%x%X%c","bonjour", 42, &c, 42, 42, 42, 42, 42, 'c');
+}
+
+void test_moulitest_40(void)
+{
+ ASSERT_PRINTF("%ld%ld", 0l, 42l);
+ ASSERT_PRINTF("%ld", (long)INT_MAX + 1);
+ ASSERT_PRINTF("%ld", (long)INT_MIN - 1);
+ ASSERT_PRINTF("%ld", LONG_MAX);
+ ASSERT_PRINTF("%ld", LONG_MIN);
+ ASSERT_PRINTF("%li%li", 0l, 42l);
+ ASSERT_PRINTF("%li", (long)INT_MAX + 1);
+ ASSERT_PRINTF("%li", (long)INT_MIN - 1);
+ ASSERT_PRINTF("%li", LONG_MAX);
+ ASSERT_PRINTF("%li", LONG_MIN);
+ ASSERT_PRINTF("%lu, %lu", 0ul, ULONG_MAX);
+ ASSERT_PRINTF("%lx, %lx", 0ul, ULONG_MAX);
+ ASSERT_PRINTF("%lX, %lX", 0ul, ULONG_MAX);
+ ASSERT_PRINTF("%lc, %lc", L'暖', L'ح');
+}
+
+void test_moulitest_41(void)
+{
+ ASSERT_PRINTF("%lld%lld", 0ll, 42ll);
+ ASSERT_PRINTF("%lld", LLONG_MAX);
+ ASSERT_PRINTF("%lld", LLONG_MIN);
+ ASSERT_PRINTF("%lli%lli", 0ll, 42ll);
+ ASSERT_PRINTF("%lli", LLONG_MAX);
+ ASSERT_PRINTF("%lli", LLONG_MIN);
+ ASSERT_PRINTF("%llu, %llu", 0llu, ULLONG_MAX);
+ ASSERT_PRINTF("%llo, %llo", 0llu, ULLONG_MAX);
+ ASSERT_PRINTF("%llx, %llx", 0llu, ULLONG_MAX);
+ ASSERT_PRINTF("%llX, %llX", 0llu, ULLONG_MAX);
+}
+
+void test_moulitest_42(void)
+{
+ ASSERT_PRINTF("%hd%hd", (short int)0, (short int)42);
+ ASSERT_PRINTF("%hd", SHRT_MAX);
+ ASSERT_PRINTF("%hd", SHRT_MIN);
+ ASSERT_PRINTF("%hi%hi", 0, 42);
+ ASSERT_PRINTF("%hi", SHRT_MAX);
+ ASSERT_PRINTF("%hi", SHRT_MIN);
+ ASSERT_PRINTF("%hu, %hu", 0, USHRT_MAX);
+ ASSERT_PRINTF("%hx, %hx", 0, USHRT_MAX);
+ ASSERT_PRINTF("%hX, %hX", 0, USHRT_MAX);
+}
+
+void test_moulitest_43(void)
+{
+ ASSERT_PRINTF("%hhd%hhd", 1, 42);
+ ASSERT_PRINTF("%hhd", CHAR_MAX);
+ ASSERT_PRINTF("%hhd", CHAR_MAX + 42);
+ ASSERT_PRINTF("%hhd", CHAR_MIN);
+ ASSERT_PRINTF("%hhd", CHAR_MIN - 42);
+ ASSERT_PRINTF("%hhi%hhi", 0, 42);
+ ASSERT_PRINTF("%hhd", CHAR_MAX);
+ ASSERT_PRINTF("%hhd", CHAR_MAX + 42);
+ ASSERT_PRINTF("%hhi", CHAR_MIN);
+ ASSERT_PRINTF("%hhi", CHAR_MIN - 42);
+ ASSERT_PRINTF("%hhu, %hhu", 0, UCHAR_MAX);
+ ASSERT_PRINTF("%hhx, %hhx", 0, UCHAR_MAX);
+ ASSERT_PRINTF("%hhX, %hhX", 0, UCHAR_MAX);
+ ASSERT_PRINTF("%hhu, %hhu", 0, UCHAR_MAX + 42);
+ ASSERT_PRINTF("%hhx, %hhx", 0, UCHAR_MAX + 42);
+ ASSERT_PRINTF("%hhX, %hhX", 0, UCHAR_MAX + 42);
+}
+
+void test_moulitest_45(void)
+{
+ ASSERT_PRINTF("%lp", 42);
+}
+
+void test_moulitest_50(void)
+{
+ ASSERT_PRINTF("{%10d}", 42);
+ ASSERT_PRINTF("{%4d}", 10000);
+ ASSERT_PRINTF("{%30d}", 10000);
+ ASSERT_PRINTF("{%10d}", -42);
+ ASSERT_PRINTF("{%3c}", 0);
+ ASSERT_PRINTF("{%5p}", 0);
+ ASSERT_PRINTF("{%-15p}", 0);
+ ASSERT_PRINTF("{%-13p}", &strlen);
+ ASSERT_PRINTF("{%-12p}", &strlen);
+}
+
+void test_moulitest_51(void)
+{
+ ASSERT_PRINTF("{%-10d}", 42);
+ ASSERT_PRINTF("{%-4d}", 10000);
+ ASSERT_PRINTF("{%-30d}", 10000);
+}
+
+void test_moulitest_52(void)
+{
+ ASSERT_PRINTF("{%010d}", -42);
+ ASSERT_PRINTF("{%04d}", 10000);
+ ASSERT_PRINTF("{%030d}", 10000);
+ ASSERT_PRINTF("{%030x}", 0xFFFF);
+ ASSERT_PRINTF("{%030X}", 0xFFFF);
+}
+
+void test_moulitest_60(void)
+{
+ ASSERT_PRINTF("%#x", 42);
+ ASSERT_PRINTF("%#x", 0);
+ ASSERT_PRINTF("%#x", INT_MAX);
+ ASSERT_PRINTF("%#X", 42);
+ ASSERT_PRINTF("%#X", 0);
+ ASSERT_PRINTF("%#X", INT_MAX);
+ ASSERT_PRINTF("%#c", 0);
+}
+
+void test_moulitest_61(void)
+{
+ ASSERT_PRINTF("%+d", 42);
+ ASSERT_PRINTF("%+d", -42);
+ ASSERT_PRINTF("%+i", 42);
+ ASSERT_PRINTF("%+i", -42);
+ ASSERT_PRINTF("% d", 9999);
+ ASSERT_PRINTF("% d", -9999);
+ ASSERT_PRINTF("% i", 9999);
+ ASSERT_PRINTF("% i", -9999);
+}
+
+void test_moulitest_69(void)
+{
+ ASSERT_PRINTF("{% +d}", 42);
+ ASSERT_PRINTF("{%+ d}", 42);
+ ASSERT_PRINTF("{%+03d}", 0);
+ ASSERT_PRINTF("{% 03d}", 0);
+ ASSERT_PRINTF("{%0-3d}", 0);
+ ASSERT_PRINTF("{%+03d}", 12);
+ ASSERT_PRINTF("{%+03d}", 123456);
+ ASSERT_PRINTF("{%03.2d}", 0);
+}
+
+void test_moulitest_70(void)
+{
+ ASSERT_PRINTF("%.4d", 42);
+ ASSERT_PRINTF("%.4d", 424242);
+ ASSERT_PRINTF("%.4d", -424242);
+ ASSERT_PRINTF("%15.4d", 42);
+ ASSERT_PRINTF("%15.4d", 424242);
+ ASSERT_PRINTF("%8.4d", 424242424);
+ ASSERT_PRINTF("%15.4d", -42);
+ ASSERT_PRINTF("%15.4d", -424242);
+ ASSERT_PRINTF("%8.4d", -424242424);
+ ASSERT_PRINTF("%4.15d", 42);
+ ASSERT_PRINTF("%4.15d", 424242);
+ ASSERT_PRINTF("%4.8d", 424242424);
+ ASSERT_PRINTF("%4.15d", -42);
+ ASSERT_PRINTF("%4.15d", -424242);
+ ASSERT_PRINTF("%4.8d", -424242424);
+ ASSERT_PRINTF("%.d, %.0d", 0, 0);
+ ASSERT_PRINTF("%.10d", -42);
+ ASSERT_PRINTF("%.4i", 42);
+ ASSERT_PRINTF("%15.4i", 42);
+ ASSERT_PRINTF("%4.15i", 42);
+ ASSERT_PRINTF("%.i, %.0i", 0, 0);
+ ASSERT_PRINTF("%.4u", 42);
+ ASSERT_PRINTF("%.4u", 424242);
+ ASSERT_PRINTF("%15.4u", 42);
+ ASSERT_PRINTF("%15.4u", 424242);
+ ASSERT_PRINTF("%8.4u", 424242424);
+ ASSERT_PRINTF("%4.15u", 42);
+ ASSERT_PRINTF("%4.15u", 424242);
+ ASSERT_PRINTF("%4.8u", 424242424);
+ ASSERT_PRINTF("%.u, %.0u", 0, 0);
+}
+
+void test_moulitest_71(void)
+{
+ ASSERT_PRINTF("%.4x", 42);
+ ASSERT_PRINTF("%.4x", 424242);
+ ASSERT_PRINTF("%15.4x", 42);
+ ASSERT_PRINTF("%15.4x", 424242);
+ ASSERT_PRINTF("%8.4x", 424242424);
+ ASSERT_PRINTF("%4.15x", 42);
+ ASSERT_PRINTF("%4.15x", 42424242);
+ ASSERT_PRINTF("%4.8x", 424242424);
+ ASSERT_PRINTF("%.x, %.0x", 0, 0);
+ ASSERT_PRINTF("%.4X", 42);
+ ASSERT_PRINTF("%.4X", 424242);
+ ASSERT_PRINTF("%15.4X", 42);
+ ASSERT_PRINTF("%15.4X", 424242);
+ ASSERT_PRINTF("%8.4X", 424242424);
+ ASSERT_PRINTF("%4.15X", 42);
+ ASSERT_PRINTF("%4.15X", 424242);
+ ASSERT_PRINTF("%4.8X", 424242424);
+ ASSERT_PRINTF("%.X, %.0X", 0, 0);
+}
+
+void test_moulitest_72(void)
+{
+ ASSERT_PRINTF("%.4s", "42");
+ ASSERT_PRINTF("%.4s", "42 is the answer");
+ ASSERT_PRINTF("%15.4s", "42");
+ ASSERT_PRINTF("%15.4s", "I am 42");
+ ASSERT_PRINTF("%15.4s", "42 is the answer");
+ ASSERT_PRINTF("%4.15s", "42");
+ ASSERT_PRINTF("%4.15s", "I am 42");
+ ASSERT_PRINTF("%4.15s", "42 is the answer");
+ ASSERT_PRINTF("%4.s", "42");
+}
+
+void test_moulitest_73(void)
+{
+ ASSERT_PRINTF("%.c", 0);
+ ASSERT_PRINTF("%.5c", 0);
+ ASSERT_PRINTF("%.5c", 42);
+}
+
+void test_moulitest_74(void)
+{
+ ASSERT_PRINTF("%.0p, %.p", 0, 0);
+ ASSERT_PRINTF("%.5p", 0);
+ ASSERT_PRINTF("%9.2p", 1234);
+ ASSERT_PRINTF("%9.2p", 1234567);
+ ASSERT_PRINTF("%2.9p", 1234);
+ ASSERT_PRINTF("%2.9p", 1234567);
+}
+
+void test_moulitest_79(void)
+{
+ ASSERT_PRINTF("%#.x, %#.0x", 0, 0);
+ ASSERT_PRINTF("%.p, %.0p", 0, 0);
+ ASSERT_PRINTF("{%#.5x}", 1);
+}
+
+void test_moulitest_90(void)
+{
+ ASSERT_PRINTF("%hhd - %hhd", SHRT_MAX - 42, SHRT_MAX - 4200);
+}
+
+void test_moulitest_91(void)
+{
+ ASSERT_PRINTF("%u", -42);
+ ASSERT_PRINTF("%u", UINT_MAX + 1);
+ ASSERT_PRINTF("%c", 200);
+ ASSERT_PRINTF("%hhu / %hhu", SHRT_MAX - 42, SHRT_MAX - 4200);
+}
+
+void test_moulitest_wildcard_01(void)
+{
+ ASSERT_PRINTF("%*d", 5, 42);
+ ASSERT_PRINTF("{%*d}", -5, 42);
+ ASSERT_PRINTF("{%*d}", 0, 42);
+ ASSERT_PRINTF("{%*c}", 0, 0);
+ ASSERT_PRINTF("{%*c}", -15, 0);
+ ASSERT_PRINTF("{%.*d}", 5, 42);
+ ASSERT_PRINTF("{%.*d}", -5, 42);
+ ASSERT_PRINTF("{%.*d}", 0, 42);
+ ASSERT_PRINTF("{%.*s}", 5, "42");
+ ASSERT_PRINTF("{%.*s}", -5, "42");
+ ASSERT_PRINTF("{%.*s}", 0, "42");
+ ASSERT_PRINTF("{%*s}", 5, 0);
+ ASSERT_PRINTF("{%*p}", 10, 0);
+}
+
+void test_moulitest_wildcard_02(void)
+{
+ ASSERT_PRINTF("%*.*d", 0, 3, 0);
+}
+
+void test_moulitest_wildcard_03(void)
+{
+ ASSERT_PRINTF("{%*3d}", 5, 0);
+ ASSERT_PRINTF("{%05.*d}", -15, 42);
+}
diff --git a/tests/pft_tests.c b/tests/pft_tests.c
new file mode 100644
index 0000000..dad1153
--- /dev/null
+++ b/tests/pft_tests.c
@@ -0,0 +1,1730 @@
+#include "../header.h"
+
+void test_pft_nacked(void)
+{
+ ASSERT_PRINTF("hello, world!");
+ ASSERT_PRINTF("");
+ ASSERT_PRINTF("\t\n\r\v\f\n");
+}
+
+void test_pft_percent(void)
+{
+ ASSERT_PRINTF("%%");
+ ASSERT_PRINTF("%5%");
+ ASSERT_PRINTF("%-5%");
+ ASSERT_PRINTF("%05%");
+ ASSERT_PRINTF("%-05%");
+}
+
+void test_pft_nocrash(void)
+{
+ static int ncm_p = 5;
+ ASSERT_PRINTF("%");
+ ASSERT_PRINTF("%5");
+ ASSERT_PRINTF("%05");
+ ASSERT_PRINTF("%-05");
+ ASSERT_PRINTF("%-5");
+
+ ASSERT_PRINTF("%.4p", &ncm_p);
+ ASSERT_PRINTF("%.p", &ncm_p);
+ ASSERT_PRINTF("%#p", &ncm_p);
+ ASSERT_PRINTF("%05p", &ncm_p);
+ ASSERT_PRINTF("%0p", &ncm_p);
+ ASSERT_PRINTF("%+p", &ncm_p);
+ ASSERT_PRINTF("%+p", &ncm_p);
+ ASSERT_PRINTF("% p", &ncm_p);
+ ASSERT_PRINTF("% p", &ncm_p);
+ ASSERT_PRINTF("%hhp", &ncm_p);
+ ASSERT_PRINTF("%hp", &ncm_p);
+ ASSERT_PRINTF("%lp", &ncm_p);
+ ASSERT_PRINTF("%llp", &ncm_p);
+ ASSERT_PRINTF("%Lp", &ncm_p);
+ ASSERT_PRINTF("%-p", &ncm_p);
+ ASSERT_PRINTF("%Ld", 42);
+ ASSERT_PRINTF("%#d", 42);
+ ASSERT_PRINTF("%hhhd", 42);
+ ASSERT_PRINTF("%hhhhd", 42);
+ ASSERT_PRINTF("%hhld", 42);
+ ASSERT_PRINTF("%hhlld", 42);
+ ASSERT_PRINTF("%llhd", 42);
+ ASSERT_PRINTF("%llld", 42);
+ ASSERT_PRINTF("%Li", 42);
+ ASSERT_PRINTF("%#i", 42);
+ ASSERT_PRINTF("%hhhi", 42);
+ ASSERT_PRINTF("%-i", 42);
+ ASSERT_PRINTF("%+o", 42);
+ ASSERT_PRINTF("% o", 42);
+ ASSERT_PRINTF("%Lo", 42);
+ ASSERT_PRINTF("%hhho", 42);
+ ASSERT_PRINTF("%hhhho", 42);
+ ASSERT_PRINTF("%hhlo", 42);
+ ASSERT_PRINTF("%hhllo", 42);
+ ASSERT_PRINTF("%llho", 42);
+ ASSERT_PRINTF("%lllo", 42);
+ ASSERT_PRINTF("%-o", 42);
+ ASSERT_PRINTF("%Lu", 42);
+ ASSERT_PRINTF("%#u", 42);
+ ASSERT_PRINTF("%+u", 42);
+ ASSERT_PRINTF("% u", 42);
+ ASSERT_PRINTF("%hhhu", 42);
+ ASSERT_PRINTF("%hhhhu", 42);
+ ASSERT_PRINTF("%hhlu", 42);
+ ASSERT_PRINTF("%hhllu", 42);
+ ASSERT_PRINTF("%llhu", 42);
+ ASSERT_PRINTF("%lllu", 42);
+ ASSERT_PRINTF("%-u", 42);
+ ASSERT_PRINTF("%Lx", 42);
+ ASSERT_PRINTF("%+x", 42);
+ ASSERT_PRINTF("% x", 42);
+ ASSERT_PRINTF("%hhhx", 42);
+ ASSERT_PRINTF("%hhhhx", 42);
+ ASSERT_PRINTF("%hhlx", 42);
+ ASSERT_PRINTF("%hhllx", 42);
+ ASSERT_PRINTF("%llhx", 42);
+ ASSERT_PRINTF("%lllx", 42);
+ ASSERT_PRINTF("%LX", 42);
+ ASSERT_PRINTF("%+X", 42);
+ ASSERT_PRINTF("% X", 42);
+ ASSERT_PRINTF("%hhhX", 42);
+ ASSERT_PRINTF("%llhX", 42);
+ ASSERT_PRINTF("%-x", 42);
+ ASSERT_PRINTF("%hhf", 42.5);
+ ASSERT_PRINTF("%hf", 42.5);
+ ASSERT_PRINTF("%llf", 42.5);
+ ASSERT_PRINTF("%lllf", 42.5);
+ ASSERT_PRINTF("%llllf", 42.5);
+ ASSERT_PRINTF("%LLf", 42.5);
+ ASSERT_PRINTF("%Llf", 42.5);
+ ASSERT_PRINTF("%lLf", 42.5);
+ ASSERT_PRINTF("%-f", 42.5);
+
+ ASSERT_PRINTF("%-021s", "abc");
+ ASSERT_PRINTF("%-05s", "goes over");
+ ASSERT_PRINTF("%04.3s%-7.4s", "hello", "world");
+ ASSERT_PRINTF("%021s", NULL);
+ ASSERT_PRINTF("%02s", NULL);
+ ASSERT_PRINTF("%-021s", NULL);
+ ASSERT_PRINTF("%-03s", NULL);
+ ASSERT_PRINTF("%+u", 5);
+ ASSERT_PRINTF("%+u", 5);
+ ASSERT_PRINTF("%+u", 4294967295);
+ ASSERT_PRINTF("%+5u", 35);
+ ASSERT_PRINTF("%+7u", 0);
+ ASSERT_PRINTF("%+24u", 4294967295);
+ ASSERT_PRINTF("%+.7u", 234);
+ ASSERT_PRINTF("%+.3u", 3723);
+ ASSERT_PRINTF("%+05u", 432);
+ ASSERT_PRINTF("%+04u", 0);
+ ASSERT_PRINTF("%+8.5u", 34);
+ ASSERT_PRINTF("%+8.5u", 0);
+ ASSERT_PRINTF("%+8.3u", 8375);
+ ASSERT_PRINTF("%+3.7u", 3267);
+ ASSERT_PRINTF("%+3.3u", 6983);
+ ASSERT_PRINTF("%+-8.5u", 34);
+ ASSERT_PRINTF("%+-8.5u", 0);
+ ASSERT_PRINTF("%+-8.3u", 8375);
+ ASSERT_PRINTF("%+-3.7u", 3267);
+ ASSERT_PRINTF("%+-3.3u", 6983);
+ ASSERT_PRINTF("%0+8.5u", 34);
+ ASSERT_PRINTF("%0+8.5u", 0);
+ ASSERT_PRINTF("%0+8.3u", 8375);
+ ASSERT_PRINTF("%0+3.7u", 3267);
+ ASSERT_PRINTF("%0+3.3u", 6983);
+ ASSERT_PRINTF("%0+-8.5u", 34);
+ ASSERT_PRINTF("%0+-8.5u", 0);
+ ASSERT_PRINTF("%0+-8.3u", 8375);
+ ASSERT_PRINTF("%0+-3.7u", 3267);
+ ASSERT_PRINTF("%0+-3.3u", 6983);
+ ASSERT_PRINTF("%05c", '\0');
+ ASSERT_PRINTF("%-05c", '\0');
+ ASSERT_PRINTF("%+lu", 22337203685477);
+ ASSERT_PRINTF("%++d", 42);
+ ASSERT_PRINTF("% d", 42);
+ ASSERT_PRINTF("% + d", 42);
+ ASSERT_PRINTF("%--5d", 42);
+ ASSERT_PRINTF("%-+-5d", 42);
+ ASSERT_PRINTF("%##x", 42);
+ ASSERT_PRINTF("%#++#-5x", 42);
+ ASSERT_PRINTF("%.4c", 'a');
+ ASSERT_PRINTF("%.c", 'a');
+ ASSERT_PRINTF("%#c", 'a');
+ ASSERT_PRINTF("%05c", 'a');
+ ASSERT_PRINTF("%0c", 'a');
+ ASSERT_PRINTF("%+c", 'a');
+ ASSERT_PRINTF("%+c", -42);
+ ASSERT_PRINTF("% c", 'a');
+ ASSERT_PRINTF("% c", -42);
+ ASSERT_PRINTF("%hhc", 'a');
+ ASSERT_PRINTF("%hc", 'a');
+ ASSERT_PRINTF("%lc", L'a');
+ ASSERT_PRINTF("%llc", L'a');
+ ASSERT_PRINTF("%Lc", L'a');
+ ASSERT_PRINTF("%-c", 'a');
+ ASSERT_PRINTF("%#s", "hello");
+ ASSERT_PRINTF("%05s", "hello");
+ ASSERT_PRINTF("%0s", "hello");
+ ASSERT_PRINTF("%+s", "hello");
+ ASSERT_PRINTF("% s", "hello");
+ ASSERT_PRINTF("%hhs", "hello");
+ ASSERT_PRINTF("%hs", "hello");
+ ASSERT_PRINTF("%ls", L"hello");
+ ASSERT_PRINTF("%lls", L"hello");
+ ASSERT_PRINTF("%Ls", L"hello");
+ ASSERT_PRINTF("%-s", "hello");
+
+ ASSERT_PRINTF("%1$");
+ ASSERT_PRINTF("%0");
+ ASSERT_PRINTF("% ");
+ ASSERT_PRINTF("%#");
+ ASSERT_PRINTF("%-");
+ ASSERT_PRINTF("%+");
+ ASSERT_PRINTF("%23");
+ ASSERT_PRINTF("%.");
+ ASSERT_PRINTF("%hh");
+ ASSERT_PRINTF("%h");
+ ASSERT_PRINTF("%ll");
+ ASSERT_PRINTF("%l");
+ ASSERT_PRINTF("%L");
+ ASSERT_PRINTF("%p");
+ ASSERT_PRINTF("%d");
+ ASSERT_PRINTF("%u");
+ ASSERT_PRINTF("%x");
+ ASSERT_PRINTF("%X");
+ ASSERT_PRINTF("%f");
+ ASSERT_PRINTF("%c");
+ ASSERT_PRINTF("%o");
+ ASSERT_PRINTF("%1$s", NULL);
+ ASSERT_PRINTF("%0s", NULL);
+ ASSERT_PRINTF("% s", NULL);
+ ASSERT_PRINTF("%#s", NULL);
+ ASSERT_PRINTF("%-s", NULL);
+ ASSERT_PRINTF("%+s", NULL);
+ ASSERT_PRINTF("%23s", NULL);
+ ASSERT_PRINTF("%.s", NULL);
+ ASSERT_PRINTF("%hhs", NULL);
+ ASSERT_PRINTF("%hs", NULL);
+ ASSERT_PRINTF("%lls", NULL);
+ ASSERT_PRINTF("%ls", NULL);
+ ASSERT_PRINTF("%Ls", NULL);
+ ASSERT_PRINTF("%p", NULL);
+ ASSERT_PRINTF("%d", NULL);
+ ASSERT_PRINTF("%b", NULL);
+ ASSERT_PRINTF("%u", NULL);
+ ASSERT_PRINTF("%x", NULL);
+ ASSERT_PRINTF("%X", NULL);
+ ASSERT_PRINTF("%f", NULL);
+ ASSERT_PRINTF("%s", NULL);
+ ASSERT_PRINTF("%c", NULL);
+ ASSERT_PRINTF("%o", NULL);
+}
+
+void test_pft_string(void)
+{
+ ASSERT_PRINTF("hello, %s.", "gavin");
+ ASSERT_PRINTF("%s", "testing testing");
+ ASSERT_PRINTF("%s%s", "hello", "world");
+ ASSERT_PRINTF("..%s stuff %s", "a", "b");
+ ASSERT_PRINTF("this %s is empty", "");
+ ASSERT_PRINTF("this %s is %s", "hello", "");
+ ASSERT_PRINTF("this %s is %s", "", "hello");
+ ASSERT_PRINTF("%s%s%s", "1", "2", "3's a charm");
+
+ ASSERT_PRINTF("%32s", "abc");
+ ASSERT_PRINTF("%16s", "nark nark");
+ ASSERT_PRINTF("%5s", "goes over");
+ ASSERT_PRINTF("%-32s", "abc");
+ ASSERT_PRINTF("%-16s", "nark nark");
+ ASSERT_PRINTF("%-5s", "goes over");
+ ASSERT_PRINTF("%.7s", "hello");
+ ASSERT_PRINTF("%.3s", "hello");
+ ASSERT_PRINTF("%.s", "hello");
+ ASSERT_PRINTF("%.0s", "hello");
+ ASSERT_PRINTF("%.3s%.2s", "holla", "bitch");
+ ASSERT_PRINTF("%.2s%.7s", "hello", "world");
+ ASSERT_PRINTF("%.7s%.2s", "hello", "world");
+ ASSERT_PRINTF("%.5s%7s", "yo", "boi");
+ ASSERT_PRINTF("%7.5s", "yolo");
+ ASSERT_PRINTF("%7.5s", "bombastic");
+ ASSERT_PRINTF("%-7.5s", "yolo");
+ ASSERT_PRINTF("%-7.5s", "tubular");
+ ASSERT_PRINTF("%7.7s%7.7s", "hello", "world");
+ ASSERT_PRINTF("%3.7s%7.7s", "hello", "world");
+ ASSERT_PRINTF("%7.7s%3.7s", "hello", "world");
+ ASSERT_PRINTF("%3.7s%3.7s", "hello", "world");
+ ASSERT_PRINTF("%7.3s%7.7s", "hello", "world");
+ ASSERT_PRINTF("%3.3s%7.7s", "hello", "world");
+ ASSERT_PRINTF("%7.3s%3.7s", "hello", "world");
+ ASSERT_PRINTF("%3.3s%3.7s", "hello", "world");
+ ASSERT_PRINTF("%7.7s%7.3s", "hello", "world");
+ ASSERT_PRINTF("%3.7s%7.3s", "hello", "world");
+ ASSERT_PRINTF("%7.7s%3.3s", "hello", "world");
+ ASSERT_PRINTF("%3.7s%3.3s", "hello", "world");
+ ASSERT_PRINTF("%7.3s%7.3s", "hello", "world");
+ ASSERT_PRINTF("%3.3s%7.3s", "hello", "world");
+ ASSERT_PRINTF("%7.3s%3.3s", "hello", "world");
+ ASSERT_PRINTF("%3.3s%3.3s", "hello", "world");
+ ASSERT_PRINTF("%3s%3s", "hello", "world");
+ ASSERT_PRINTF("%-7s%5s", "hello", "world");
+ ASSERT_PRINTF("%7s%-5s", "hello", "world");
+ ASSERT_PRINTF("hello, %s.", NULL);
+ ASSERT_PRINTF("%s", NULL);
+ ASSERT_PRINTF("%32s", NULL);
+ ASSERT_PRINTF("%2s", NULL);
+ ASSERT_PRINTF("%-32s", NULL);
+ ASSERT_PRINTF("%-16s", NULL);
+ ASSERT_PRINTF("%-3s", NULL);
+ ASSERT_PRINTF("%.9s", "NULL");
+ ASSERT_PRINTF("%.3s", "NULL");
+ ASSERT_PRINTF("%.s", "NULL");
+ ASSERT_PRINTF("%.0s", "NULL");
+
+ static char *s_hidden = "hi low\0don't print me lol\0";
+ ASSERT_PRINTF("%s", s_hidden);
+ ASSERT_PRINTF("%3s", s_hidden);
+ ASSERT_PRINTF("%9s", s_hidden);
+ ASSERT_PRINTF("%.s", s_hidden);
+ ASSERT_PRINTF("%.9s", s_hidden);
+ ASSERT_PRINTF("%.03s", s_hidden);
+ ASSERT_PRINTF("%.09s", s_hidden);
+ ASSERT_PRINTF("%.03s", NULL);
+ ASSERT_PRINTF("%.09s", NULL);
+ ASSERT_PRINTF("%.00s", "\0");
+ ASSERT_PRINTF("%.01s", "\0");
+ ASSERT_PRINTF("%.03s", "\0");
+ ASSERT_PRINTF("%.09s", "\0");
+ ASSERT_PRINTF("%3.s", s_hidden);
+ ASSERT_PRINTF("%10.s", s_hidden);
+ ASSERT_PRINTF("%3.s", NULL);
+ ASSERT_PRINTF("%10.s", NULL);
+ ASSERT_PRINTF("%1.s", "\0");
+ ASSERT_PRINTF("%2.s", "\0");
+ ASSERT_PRINTF("%9.s", "\0");
+ ASSERT_PRINTF("%-3.s", s_hidden);
+ ASSERT_PRINTF("%-8.s", s_hidden);
+ ASSERT_PRINTF("%-3.s", NULL);
+ ASSERT_PRINTF("%-8.s", NULL);
+ ASSERT_PRINTF("%-1.s", "\0");
+ ASSERT_PRINTF("%-2.s", "\0");
+ ASSERT_PRINTF("%-6.s", "\0");
+ ASSERT_PRINTF("%3.1s", s_hidden);
+ ASSERT_PRINTF("%10.1s", s_hidden);
+ ASSERT_PRINTF("%3.1s", NULL);
+ ASSERT_PRINTF("%9.1s", NULL);
+ ASSERT_PRINTF("%-3.1s", s_hidden);
+ ASSERT_PRINTF("%-10.1s", s_hidden);
+ ASSERT_PRINTF("%-3.1s", NULL);
+ ASSERT_PRINTF("%-9.1s", NULL);
+ ASSERT_PRINTF("%-3.1s", "\0");
+ ASSERT_PRINTF("%-6.1s", "\0");
+ ASSERT_PRINTF("%3.6s", s_hidden);
+ ASSERT_PRINTF("%20.6s", s_hidden);
+ ASSERT_PRINTF("%3.6s", NULL);
+ ASSERT_PRINTF("%20.6s", NULL);
+ ASSERT_PRINTF("%3.6s", "\0");
+ ASSERT_PRINTF("%6.6s", "\0");
+ ASSERT_PRINTF("%-3.6s", s_hidden);
+ ASSERT_PRINTF("%-20.6s", s_hidden);
+ ASSERT_PRINTF("%-3.8s", s_hidden);
+ ASSERT_PRINTF("%-10.8s", s_hidden);
+ ASSERT_PRINTF("%-3.8s", NULL);
+ ASSERT_PRINTF("%-10.8s", NULL);
+ ASSERT_PRINTF("%-.00s", s_hidden);
+ ASSERT_PRINTF("%-.09s", s_hidden);
+ ASSERT_PRINTF("%+- 06.06s", s_hidden);
+ ASSERT_PRINTF("% 0+-6.06s", s_hidden);
+ ASSERT_PRINTF("%0 +-6.06s", s_hidden);
+ ASSERT_PRINTF("%+-0 6.06s", s_hidden);
+ ASSERT_PRINTF("%-+ 06.06s", s_hidden);
+ ASSERT_PRINTF("% -+06.06s", s_hidden);
+ ASSERT_PRINTF("%+- 07.06s", s_hidden);
+ ASSERT_PRINTF("% 0+-8.06s", s_hidden);
+ ASSERT_PRINTF("%0 +-9.06s", s_hidden);
+ ASSERT_PRINTF("%+-0 10.06s", s_hidden);
+ ASSERT_PRINTF("%-+ 011.06s", s_hidden);
+ ASSERT_PRINTF("% -+012.06s", s_hidden);
+ ASSERT_PRINTF("%+- 06.04s", s_hidden);
+ ASSERT_PRINTF("% 0+-6.04s", s_hidden);
+ ASSERT_PRINTF("%0 +-6.04s", s_hidden);
+ ASSERT_PRINTF("%+-0 6.04s", s_hidden);
+ ASSERT_PRINTF("%-+ 06.04s", s_hidden);
+ ASSERT_PRINTF("% 0-+6.04s", s_hidden);
+ ASSERT_PRINTF("%+- 06.09s", s_hidden);
+ ASSERT_PRINTF("% 0+-6.09s", s_hidden);
+ ASSERT_PRINTF("%0 +-6.09s", s_hidden);
+ ASSERT_PRINTF("%+-0 6.09s", s_hidden);
+ ASSERT_PRINTF("%-+ 06.09s", s_hidden);
+ ASSERT_PRINTF("% 0-+6.09s", s_hidden);
+ ASSERT_PRINTF("%00s", s_hidden);
+ ASSERT_PRINTF("%000s", s_hidden);
+ ASSERT_PRINTF("%0000s", s_hidden);
+ ASSERT_PRINTF("%-00s", s_hidden);
+ ASSERT_PRINTF("%0-0s", s_hidden);
+ ASSERT_PRINTF("%00-s", s_hidden);
+ ASSERT_PRINTF("%03s", s_hidden);
+ ASSERT_PRINTF("%09s", s_hidden);
+ ASSERT_PRINTF("%+03s", s_hidden);
+ ASSERT_PRINTF("%+09s", s_hidden);
+ ASSERT_PRINTF("%-03s", s_hidden);
+ ASSERT_PRINTF("%-09s", s_hidden);
+ ASSERT_PRINTF("%+ 3s", s_hidden);
+ ASSERT_PRINTF("%+ 6s", s_hidden);
+}
+
+void test_pft_int_i(void)
+{
+ ASSERT_PRINTF("this %i number", 17);
+ ASSERT_PRINTF("this %i number", -267);
+ ASSERT_PRINTF("this %i number", 0);
+ ASSERT_PRINTF("%i", 3);
+ ASSERT_PRINTF("%i", -1);
+ ASSERT_PRINTF("%i", 0);
+ ASSERT_PRINTF("this %d number", 17);
+ ASSERT_PRINTF("this %d number", -267);
+ ASSERT_PRINTF("this %d number", 0);
+ ASSERT_PRINTF("%i", 2147483647);
+ ASSERT_PRINTF("%i", (int)(-2147483678));
+ ASSERT_PRINTF("%+i", 5);
+ ASSERT_PRINTF("%+i", -7);
+ ASSERT_PRINTF("%+i", 2147483647);
+ ASSERT_PRINTF("%7i", 33);
+ ASSERT_PRINTF("%7i", -14);
+ ASSERT_PRINTF("%3i", 0);
+ ASSERT_PRINTF("%5i", 52625);
+ ASSERT_PRINTF("%5i", -2562);
+ ASSERT_PRINTF("%4i", 94827);
+ ASSERT_PRINTF("%4i", -2464);
+ ASSERT_PRINTF("%-7i", 33);
+ ASSERT_PRINTF("%-7i", -14);
+ ASSERT_PRINTF("%-3i", 0);
+ ASSERT_PRINTF("%-5i", 52625);
+ ASSERT_PRINTF("%-5i", -2562);
+ ASSERT_PRINTF("%-4i", 94827);
+ ASSERT_PRINTF("%-4i", -2464);
+ ASSERT_PRINTF("%+5i", 35);
+ ASSERT_PRINTF("%+7i", 0);
+ ASSERT_PRINTF("%+24i", 2147483647);
+ ASSERT_PRINTF("%.5i", 2);
+ ASSERT_PRINTF("%.6i", -3);
+ ASSERT_PRINTF("%.3i", 0);
+ ASSERT_PRINTF("%.4i", 5263);
+ ASSERT_PRINTF("%.4i", -2372);
+ ASSERT_PRINTF("%.3i", 13862);
+ ASSERT_PRINTF("%.3i",-23646);
+ ASSERT_PRINTF("%+.7i", 234);
+ ASSERT_PRINTF("%+.7i", -446);
+ ASSERT_PRINTF("%+.3i", 3723);
+ ASSERT_PRINTF("%05i", 43);
+ ASSERT_PRINTF("%07i", -54);
+ ASSERT_PRINTF("%03i", 0);
+ ASSERT_PRINTF("%03i", 634);
+ ASSERT_PRINTF("%04i", -532);
+ ASSERT_PRINTF("%04i", -4825);
+ ASSERT_PRINTF("%+05i", 432);
+ ASSERT_PRINTF("%+04i", 0);
+ ASSERT_PRINTF("%8.5i", 34);
+ ASSERT_PRINTF("%10.5i", -216);
+ ASSERT_PRINTF("%8.5i", 0);
+ ASSERT_PRINTF("%8.3i", 8375);
+ ASSERT_PRINTF("%8.3i", -8473);
+ ASSERT_PRINTF("%3.7i", 3267);
+ ASSERT_PRINTF("%3.7i", -2375);
+ ASSERT_PRINTF("%3.3i", 6983);
+ ASSERT_PRINTF("%3.3i", -8462);
+ ASSERT_PRINTF("%-8.5i", 34);
+ ASSERT_PRINTF("%-10.5i", -216);
+ ASSERT_PRINTF("%-8.5i", 0);
+ ASSERT_PRINTF("%-8.3i", 8375);
+ ASSERT_PRINTF("%-8.3i", -8473);
+ ASSERT_PRINTF("%-3.7i", 3267);
+ ASSERT_PRINTF("%-3.7i", -2375);
+ ASSERT_PRINTF("%-3.3i", 6983);
+ ASSERT_PRINTF("%-3.3i", -8462);
+ ASSERT_PRINTF("%+8.5i", 34);
+ ASSERT_PRINTF("%+10.5i", -216);
+ ASSERT_PRINTF("%+8.5i", 0);
+ ASSERT_PRINTF("%+8.3i", 8375);
+ ASSERT_PRINTF("%+8.3i", -8473);
+ ASSERT_PRINTF("%+3.7i", 3267);
+ ASSERT_PRINTF("%+3.7i", -2375);
+ ASSERT_PRINTF("%+3.3i", 6983);
+ ASSERT_PRINTF("%+3.3i", -8462);
+ ASSERT_PRINTF("%+-8.5i", 34);
+ ASSERT_PRINTF("%+-10.5i", -216);
+ ASSERT_PRINTF("%+-8.5i", 0);
+ ASSERT_PRINTF("%+-8.3i", 8375);
+ ASSERT_PRINTF("%+-8.3i", -8473);
+ ASSERT_PRINTF("%+-3.7i", 3267);
+ ASSERT_PRINTF("%+-3.7i", -2375);
+ ASSERT_PRINTF("%+-3.3i", 6983);
+ ASSERT_PRINTF("%+-3.3i", -8462);
+ ASSERT_PRINTF("%08.5i", 34);
+ ASSERT_PRINTF("%010.5i", -216);
+ ASSERT_PRINTF("%08.5i", 0);
+ ASSERT_PRINTF("%08.3i", 8375);
+ ASSERT_PRINTF("%08.3i", -8473);
+ ASSERT_PRINTF("%03.7i", 3267);
+ ASSERT_PRINTF("%03.7i", -2375);
+ ASSERT_PRINTF("%03.3i", 6983);
+ ASSERT_PRINTF("%03.3i", -8462);
+ ASSERT_PRINTF("%0-8.5i", 34);
+ ASSERT_PRINTF("%0-10.5i", -216);
+ ASSERT_PRINTF("%0-8.5i", 0);
+ ASSERT_PRINTF("%0-8.3i", 8375);
+ ASSERT_PRINTF("%0-8.3i", -8473);
+ ASSERT_PRINTF("%0-3.7i", 3267);
+ ASSERT_PRINTF("%0-3.7i", -2375);
+ ASSERT_PRINTF("%0-3.3i", 6983);
+ ASSERT_PRINTF("%0-3.3i", -8462);
+ ASSERT_PRINTF("%0+8.5i", 34);
+ ASSERT_PRINTF("%0+10.5i", -216);
+ ASSERT_PRINTF("%0+8.5i", 0);
+ ASSERT_PRINTF("%0+8.3i", 8375);
+ ASSERT_PRINTF("%0+8.3i", -8473);
+ ASSERT_PRINTF("%0+3.7i", 3267);
+ ASSERT_PRINTF("%0+3.7i", -2375);
+ ASSERT_PRINTF("%0+3.3i", 6983);
+ ASSERT_PRINTF("%0+3.3i", -8462);
+ ASSERT_PRINTF("%0+-8.5i", 34);
+ ASSERT_PRINTF("%0+-10.5i", -216);
+ ASSERT_PRINTF("%0+-8.5i", 0);
+ ASSERT_PRINTF("%0+-8.3i", 8375);
+ ASSERT_PRINTF("%0+-8.3i", -8473);
+ ASSERT_PRINTF("%0+-3.7i", 3267);
+ ASSERT_PRINTF("%0+-3.7i", -2375);
+ ASSERT_PRINTF("%0+-3.3i", 6983);
+ ASSERT_PRINTF("%0+-3.3i", -8462);
+ static char ch_pos_1 = 100, ch_neg_1 = -87;
+ static short sh_pos_1 = 3047, sh_neg_1 = -8875;
+ static int i_pos_1 = 878023;
+ static long l_pos_1 = 22337203685477, l_neg_1 = -22337203685477;
+ static long long ll_pos_1 = 22337203685477, ll_neg_1 = -22337203685477;
+ static long lmax = 9223372036854775807;
+ static long lmin = -9223372036854775807;
+ static long long llmax = 9223372036854775807;
+ static long long llmin = -9223372036854775807ll;
+ ASSERT_PRINTF("%hhi", (char)45);
+ ASSERT_PRINTF("%hhi", (char)-45);
+ ASSERT_PRINTF("%hi", (short)385);
+ ASSERT_PRINTF("%hi", (short)-385);
+ ASSERT_PRINTF("%li", (long)32);
+ ASSERT_PRINTF("%li", (long)-32);
+ ASSERT_PRINTF("%lli", (long long)43);
+ ASSERT_PRINTF("%lli", (long long)-43);
+ ASSERT_PRINTF("%hhi", ch_pos_1);
+ ASSERT_PRINTF("%hhi", ch_neg_1);
+ ASSERT_PRINTF("%hi", sh_pos_1);
+ ASSERT_PRINTF("%hi", sh_neg_1);
+ ASSERT_PRINTF("%li", l_pos_1);
+ ASSERT_PRINTF("%li", lmax);
+ ASSERT_PRINTF("%lli", llmax);
+ ASSERT_PRINTF("%li", l_neg_1);
+ ASSERT_PRINTF("%lli", ll_pos_1);
+ ASSERT_PRINTF("%lli", ll_neg_1);
+ ASSERT_PRINTF("%li", 22337203685477);
+ ASSERT_PRINTF("%li", -22337203685477);
+ ASSERT_PRINTF("%lli", 522337203685470ll);
+ ASSERT_PRINTF("%lli", -522337203685470ll);
+ ASSERT_PRINTF("%lli", 9223372036854775807ll);
+ ASSERT_PRINTF("%lli", llmin);
+ ASSERT_PRINTF("%li", 9223372036854775807l);
+ ASSERT_PRINTF("%li", lmin);
+ ASSERT_PRINTF("%hi", (short)32767);
+ ASSERT_PRINTF("%hi", (short)(-32768));
+ ASSERT_PRINTF("%hhi", (char)127);
+ ASSERT_PRINTF("%hhi", (char)(-128));
+ ASSERT_PRINTF("%037li", 22337203685477l);
+ ASSERT_PRINTF("%.37li", -22337203685477l);
+ ASSERT_PRINTF("%37lli", 522337203685470ll);
+ ASSERT_PRINTF("%-37lli", -522337203685470ll);
+ ASSERT_PRINTF("%+li", 22337203685477l);
+ ASSERT_PRINTF("[%i] [%i]", i_pos_1, i_pos_1);
+ ASSERT_PRINTF("[%i] [%li]", i_pos_1, l_pos_1);
+ ASSERT_PRINTF("[%i] [%lli]", i_pos_1, ll_pos_1);
+ ASSERT_PRINTF("[%i] [%hi]", i_pos_1, sh_pos_1);
+ ASSERT_PRINTF("[%i] [%hhi]", i_pos_1, ch_pos_1);
+ ASSERT_PRINTF("%lli%hhi%lli", ll_pos_1, ch_neg_1, ll_neg_1);
+ ASSERT_PRINTF("%hi%li%hhi", sh_pos_1, l_neg_1, ch_neg_1);
+ ASSERT_PRINTF("%li%hhi%hi", l_neg_1, ch_pos_1, sh_pos_1);
+ ASSERT_PRINTF("%i%lli%hhi", i_pos_1, ll_neg_1, ch_pos_1);
+ ASSERT_PRINTF("%lli%i%li", ll_neg_1, i_pos_1, l_pos_1);
+ ASSERT_PRINTF("this % i number", 17);
+ ASSERT_PRINTF("this % i number", -267);
+ ASSERT_PRINTF("this % i number", 0);
+ ASSERT_PRINTF("% i", 3);
+ ASSERT_PRINTF("% i", -1);
+ ASSERT_PRINTF("% i", 0);
+ ASSERT_PRINTF("this % d number", 17);
+ ASSERT_PRINTF("this % d number", -267);
+ ASSERT_PRINTF("this % d number", 0);
+ ASSERT_PRINTF("% i", 2147483647);
+ ASSERT_PRINTF("% i", (int)(-2147483678));
+ ASSERT_PRINTF("% +i", 5);
+ ASSERT_PRINTF("% +i", -7);
+ ASSERT_PRINTF("% +i", 2147483647);
+ ASSERT_PRINTF("% 7i", 33);
+ ASSERT_PRINTF("% 7i", -14);
+ ASSERT_PRINTF("% 3i", 0);
+ ASSERT_PRINTF("% 5i", 52625);
+ ASSERT_PRINTF("% 5i", -2562);
+ ASSERT_PRINTF("% 4i", 94827);
+ ASSERT_PRINTF("% 4i", -2464);
+ ASSERT_PRINTF("% -7i", 33);
+ ASSERT_PRINTF("% -7i", -14);
+ ASSERT_PRINTF("% -3i", 0);
+ ASSERT_PRINTF("% -5i", 52625);
+ ASSERT_PRINTF("% -5i", -2562);
+ ASSERT_PRINTF("% -4i", 94827);
+ ASSERT_PRINTF("% -4i", -2464);
+ ASSERT_PRINTF("% +5i", 35);
+ ASSERT_PRINTF("% +7i", 0);
+ ASSERT_PRINTF("% +24i", 2147483647);
+ ASSERT_PRINTF("% .5i", 2);
+ ASSERT_PRINTF("% .6i", -3);
+ ASSERT_PRINTF("% .3i", 0);
+ ASSERT_PRINTF("% .4i", 5263);
+ ASSERT_PRINTF("% .4i", -2372);
+ ASSERT_PRINTF("% .3i", 13862);
+ ASSERT_PRINTF("% .3i",-23646);
+ ASSERT_PRINTF("% +.7i", 234);
+ ASSERT_PRINTF("% +.7i", -446);
+ ASSERT_PRINTF("% +.3i", 3723);
+ ASSERT_PRINTF("% 05i", 43);
+ ASSERT_PRINTF("% 07i", -54);
+ ASSERT_PRINTF("% 03i", 0);
+ ASSERT_PRINTF("% 03i", 634);
+ ASSERT_PRINTF("% 04i", -532);
+ ASSERT_PRINTF("% 04i", -4825);
+ ASSERT_PRINTF("% +05i", 432);
+ ASSERT_PRINTF("% +04i", 0);
+ ASSERT_PRINTF("% 8.5i", 34);
+ ASSERT_PRINTF("% 10.5i", -216);
+ ASSERT_PRINTF("% 8.5i", 0);
+ ASSERT_PRINTF("% 8.3i", 8375);
+ ASSERT_PRINTF("% 8.3i", -8473);
+ ASSERT_PRINTF("% 3.7i", 3267);
+ ASSERT_PRINTF("% 3.7i", -2375);
+ ASSERT_PRINTF("% 3.3i", 6983);
+ ASSERT_PRINTF("% 3.3i", -8462);
+ ASSERT_PRINTF("% -8.5i", 34);
+ ASSERT_PRINTF("% -10.5i", -216);
+ ASSERT_PRINTF("% -8.5i", 0);
+ ASSERT_PRINTF("% -8.3i", 8375);
+ ASSERT_PRINTF("% -8.3i", -8473);
+ ASSERT_PRINTF("% -3.7i", 3267);
+ ASSERT_PRINTF("% -3.7i", -2375);
+ ASSERT_PRINTF("% -3.3i", 6983);
+ ASSERT_PRINTF("% -3.3i", -8462);
+ ASSERT_PRINTF("% +8.5i", 34);
+ ASSERT_PRINTF("% +10.5i", -216);
+ ASSERT_PRINTF("% +8.5i", 0);
+ ASSERT_PRINTF("% +8.3i", 8375);
+ ASSERT_PRINTF("% +8.3i", -8473);
+ ASSERT_PRINTF("% +3.7i", 3267);
+ ASSERT_PRINTF("% +3.7i", -2375);
+ ASSERT_PRINTF("% +3.3i", 6983);
+ ASSERT_PRINTF("% +3.3i", -8462);
+ ASSERT_PRINTF("% +-8.5i", 34);
+ ASSERT_PRINTF("% +-10.5i", -216);
+ ASSERT_PRINTF("% +-8.5i", 0);
+ ASSERT_PRINTF("% +-8.3i", 8375);
+ ASSERT_PRINTF("% +-8.3i", -8473);
+ ASSERT_PRINTF("% +-3.7i", 3267);
+ ASSERT_PRINTF("% +-3.7i", -2375);
+ ASSERT_PRINTF("% +-3.3i", 6983);
+ ASSERT_PRINTF("% +-3.3i", -8462);
+ ASSERT_PRINTF("% 08.5i", 34);
+ ASSERT_PRINTF("% 010.5i", -216);
+ ASSERT_PRINTF("% 08.5i", 0);
+ ASSERT_PRINTF("% 08.3i", 8375);
+ ASSERT_PRINTF("% 08.3i", -8473);
+ ASSERT_PRINTF("% 03.7i", 3267);
+ ASSERT_PRINTF("% 03.7i", -2375);
+ ASSERT_PRINTF("% 03.3i", 6983);
+ ASSERT_PRINTF("% 03.3i", -8462);
+ ASSERT_PRINTF("% 0-8.5i", 34);
+ ASSERT_PRINTF("% 0-10.5i", -216);
+ ASSERT_PRINTF("% 0-8.5i", 0);
+ ASSERT_PRINTF("% 0-8.3i", 8375);
+ ASSERT_PRINTF("% 0-8.3i", -8473);
+ ASSERT_PRINTF("% 0-3.7i", 3267);
+ ASSERT_PRINTF("% 0-3.7i", -2375);
+ ASSERT_PRINTF("% 0-3.3i", 6983);
+ ASSERT_PRINTF("% 0-3.3i", -8462);
+ ASSERT_PRINTF("% 0+8.5i", 34);
+ ASSERT_PRINTF("% 0+10.5i", -216);
+ ASSERT_PRINTF("% 0+8.5i", 0);
+ ASSERT_PRINTF("% 0+8.3i", 8375);
+ ASSERT_PRINTF("% 0+8.3i", -8473);
+ ASSERT_PRINTF("% 0+3.7i", 3267);
+ ASSERT_PRINTF("% 0+3.7i", -2375);
+ ASSERT_PRINTF("% 0+3.3i", 6983);
+ ASSERT_PRINTF("% 0+3.3i", -8462);
+ ASSERT_PRINTF("% 0+-8.5i", 34);
+ ASSERT_PRINTF("% 0+-10.5i", -216);
+ ASSERT_PRINTF("% 0+-8.5i", 0);
+ ASSERT_PRINTF("% 0+-8.3i", 8375);
+ ASSERT_PRINTF("% 0+-8.3i", -8473);
+ ASSERT_PRINTF("% 0+-3.7i", 3267);
+ ASSERT_PRINTF("% 0+-3.7i", -2375);
+ ASSERT_PRINTF("% 0+-3.3i", 6983);
+ ASSERT_PRINTF("% 0+-3.3i", -8462);
+ ASSERT_PRINTF("% hhi", (char)45);
+ ASSERT_PRINTF("% hhi", (char)-45);
+ ASSERT_PRINTF("% hi", (short)385);
+ ASSERT_PRINTF("% hi", (short)-385);
+ ASSERT_PRINTF("% li", (long)32);
+ ASSERT_PRINTF("% li", (long)-32);
+ ASSERT_PRINTF("% lli", (long long)43);
+ ASSERT_PRINTF("% lli", (long long)-43);
+ ASSERT_PRINTF("% hhi", ch_pos_1);
+ ASSERT_PRINTF("% hhi", ch_neg_1);
+ ASSERT_PRINTF("% hi", sh_pos_1);
+ ASSERT_PRINTF("% hi", sh_neg_1);
+ ASSERT_PRINTF("% li", l_pos_1);
+ ASSERT_PRINTF("% li", l_neg_1);
+ ASSERT_PRINTF("% lli", ll_pos_1);
+ ASSERT_PRINTF("% lli", ll_neg_1);
+ ASSERT_PRINTF("% li", 22337203685477l);
+ ASSERT_PRINTF("% li", -22337203685477l);
+ ASSERT_PRINTF("% lli", 522337203685470ll);
+ ASSERT_PRINTF("% lli", -522337203685470ll);
+ ASSERT_PRINTF("% lli", 9223372036854775807ll);
+ ASSERT_PRINTF("% lli", llmin);
+ ASSERT_PRINTF("% li", 9223372036854775807l);
+ ASSERT_PRINTF("% li", lmin);
+ ASSERT_PRINTF("% hi", (short)32767);
+ ASSERT_PRINTF("% hi", (short)(-32768));
+ ASSERT_PRINTF("% hhi", (char)(127));
+ ASSERT_PRINTF("% hhi", (char)(-128));
+ ASSERT_PRINTF("%.0i", 0);
+ ASSERT_PRINTF("%.i", 0);
+ ASSERT_PRINTF("%5.0i", 0);
+ ASSERT_PRINTF("%5.i", 0);
+ ASSERT_PRINTF("%-5.0i", 0);
+ ASSERT_PRINTF("%-5.i", 0);
+ ASSERT_PRINTF("%+.0i", 0);
+ ASSERT_PRINTF("%+.i", 0);
+ ASSERT_PRINTF("%+5.0i", 0);
+ ASSERT_PRINTF("%+5.i", 0);
+ ASSERT_PRINTF("%+-5.0i", 0);
+ ASSERT_PRINTF("%+-5.i", 0);