aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-11-02 03:28:38 +0100
committerCharles <sircharlesaze@gmail.com>2019-11-02 03:28:38 +0100
commit29387bf2bcc964a572a4bb267b13e685ca20d643 (patch)
treeb172c26d7f1bb343b5bfa16c1532d5fee4a4b5fd
parent2b467659d30db14df17c7b50438c46788ab0d341 (diff)
downloadft_printf_test-29387bf2bcc964a572a4bb267b13e685ca20d643.tar.gz
ft_printf_test-29387bf2bcc964a572a4bb267b13e685ca20d643.tar.bz2
ft_printf_test-29387bf2bcc964a572a4bb267b13e685ca20d643.zip
Added moulitest tests
-rw-r--r--Makefile2
-rw-r--r--header.h36
-rw-r--r--main.c36
-rw-r--r--moulitest_tests.c396
4 files changed, 469 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 3ac3576..3084c2d 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ PYTHON = python3
RM = rm -f
MAKE = make -j4
-SRC = main.c helper.c pft_tests.c
+SRC = main.c helper.c pft_tests.c moulitest_tests.c
OBJ = $(SRC:.c=.o)
run: run_pretty
diff --git a/header.h b/header.h
index 8a968db..df1d031 100644
--- a/header.h
+++ b/header.h
@@ -42,6 +42,42 @@ void test_ptf_hex_up(void);
void test_pft_ptr(void);
void test_pft_char(void);
+void test_moulitest_00(void);
+void test_moulitest_01(void);
+void test_moulitest_02(void);
+void test_moulitest_03(void);
+void test_moulitest_04(void);
+void test_moulitest_05(void);
+void test_moulitest_06(void);
+void test_moulitest_09(void);
+void test_moulitest_12(void);
+void test_moulitest_14(void);
+void test_moulitest_15(void);
+void test_moulitest_16(void);
+void test_moulitest_18(void);
+void test_moulitest_40(void);
+void test_moulitest_41(void);
+void test_moulitest_42(void);
+void test_moulitest_43(void);
+void test_moulitest_45(void);
+void test_moulitest_50(void);
+void test_moulitest_51(void);
+void test_moulitest_52(void);
+void test_moulitest_60(void);
+void test_moulitest_61(void);
+void test_moulitest_69(void);
+void test_moulitest_70(void);
+void test_moulitest_71(void);
+void test_moulitest_72(void);
+void test_moulitest_73(void);
+void test_moulitest_74(void);
+void test_moulitest_79(void);
+void test_moulitest_90(void);
+void test_moulitest_91(void);
+void test_moulitest_wildcard_01(void);
+void test_moulitest_wildcard_02(void);
+void test_moulitest_wildcard_03(void);
+
# define TEST_SEGFAULT(x) do { \
if ((pid = fork()) < 0) \
exit(EXIT_FAILURE); \
diff --git a/main.c b/main.c
index f0832a3..8ff4edf 100644
--- a/main.c
+++ b/main.c
@@ -13,5 +13,41 @@ int main(int argc, char **argv)
test_ptf_hex_up();
test_pft_ptr();
test_pft_char();
+
+ test_moulitest_00();
+ test_moulitest_01();
+ test_moulitest_02();
+ test_moulitest_03();
+ test_moulitest_04();
+ test_moulitest_05();
+ test_moulitest_06();
+ test_moulitest_09();
+ test_moulitest_12();
+ test_moulitest_14();
+ test_moulitest_15();
+ test_moulitest_16();
+ test_moulitest_18();
+ test_moulitest_40();
+ test_moulitest_41();
+ test_moulitest_42();
+ test_moulitest_43();
+ test_moulitest_45();
+ test_moulitest_50();
+ test_moulitest_51();
+ test_moulitest_52();
+ test_moulitest_60();
+ test_moulitest_61();
+ test_moulitest_69();
+ test_moulitest_70();
+ test_moulitest_71();
+ test_moulitest_72();
+ test_moulitest_73();
+ test_moulitest_74();
+ test_moulitest_79();
+ test_moulitest_90();
+ test_moulitest_91();
+ test_moulitest_wildcard_01();
+ test_moulitest_wildcard_02();
+ test_moulitest_wildcard_03();
return 0;
}
diff --git a/moulitest_tests.c b/moulitest_tests.c
new file mode 100644
index 0000000..546cf62
--- /dev/null
+++ b/moulitest_tests.c
@@ -0,0 +1,396 @@
+#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);
+ ASSERT_PRINTF("%hhD, %hhD", 0, USHRT_MAX);
+}
+
+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);
+}