diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-02 03:28:38 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-02 03:28:38 +0100 |
| commit | 29387bf2bcc964a572a4bb267b13e685ca20d643 (patch) | |
| tree | b172c26d7f1bb343b5bfa16c1532d5fee4a4b5fd | |
| parent | 2b467659d30db14df17c7b50438c46788ab0d341 (diff) | |
| download | ft_printf_test-29387bf2bcc964a572a4bb267b13e685ca20d643.tar.gz ft_printf_test-29387bf2bcc964a572a4bb267b13e685ca20d643.tar.bz2 ft_printf_test-29387bf2bcc964a572a4bb267b13e685ca20d643.zip | |
Added moulitest tests
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | header.h | 36 | ||||
| -rw-r--r-- | main.c | 36 | ||||
| -rw-r--r-- | moulitest_tests.c | 396 |
4 files changed, 469 insertions, 1 deletions
@@ -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 @@ -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); \ @@ -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); +} |
