From 1dab6cfb53cdab3ecb83420af13cf5a5bc1ed451 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 2 Nov 2025 14:10:31 +0100 Subject: [PATCH] Test script --- test.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ test.sh | 10 ++++++ 2 files changed, 107 insertions(+) create mode 100644 test.c create mode 100755 test.sh diff --git a/test.c b/test.c new file mode 100644 index 0000000..98319fc --- /dev/null +++ b/test.c @@ -0,0 +1,97 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: agilliar +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/10/31 23:55:18 by agilliar #+# #+# */ +/* Updated: 2025/11/01 00:07:17 by agilliar ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* + cc test.c libftprintf.a && ./a.out > test.out && [ \ + "$(awk "NR % 2 == 1 { print; }" test.out)" \ + == "$(awk "NR % 2 == 0 { print; }" test.out)" ] \ + || echo "TEST FAILED" +*/ + +#include +#include +#include "libftprintf.h" + +#define TEST_PRINTF(...) { \ + int r1 = printf(__VA_ARGS__); \ + fflush(stdout); \ + int r2 = ft_printf(__VA_ARGS__); \ + if (r1 != r2) \ + { \ + fprintf(stderr, "printf failed, r1: %i, r2: %i\n", r1, r2); \ + res = 1; \ + } \ +} + +int main(void) +{ + int res = 0; + const void *test_ptr = "test"; + TEST_PRINTF("this %corks\n", 'w'); + TEST_PRINTF("this %3corks\n", 'w'); + TEST_PRINTF("this %s\n", "is awesome"); + TEST_PRINTF("this %.5s\n", "is awesome"); + TEST_PRINTF("this %2s\n", "is awesome"); + TEST_PRINTF("this %10.6s\n", "is awesome"); + TEST_PRINTF("this %.6s\n", "is awesome"); + TEST_PRINTF("this %1.6s\n", "is awesome"); + TEST_PRINTF("this %.6s\n", NULL); + TEST_PRINTF("this %p\n", NULL); + TEST_PRINTF("this %0p\n", test_ptr); + TEST_PRINTF("this %-24p a\n", test_ptr); + TEST_PRINTF("this %24p a\n", test_ptr); + TEST_PRINTF("this %i a\n", 12); + TEST_PRINTF("this %d a\n", 12); + TEST_PRINTF("this %i a\n", INT_MAX); + TEST_PRINTF("this %d a\n", INT_MIN); + TEST_PRINTF("this %.0i a\n", 0); + TEST_PRINTF("this %5.0d a\n", 0); + TEST_PRINTF("this %#-10i a\n", 12); + TEST_PRINTF("this %#-10.5d a\n", 12); + TEST_PRINTF("this % 10.5i a\n", 12); + TEST_PRINTF("this % 10.5d a\n", -123); + TEST_PRINTF("this % .5i a\n", 12); + TEST_PRINTF("this %+10.5d a\n", 12); + TEST_PRINTF("this %+10.5i a\n", -123); + TEST_PRINTF("this %010.5d a\n", 12); + TEST_PRINTF("this %0-10.5i a\n", 12); + TEST_PRINTF("this %020u a\n", UINT_MAX); + TEST_PRINTF("this %.0u a\n", 0); + TEST_PRINTF("this %-10.0u a\n", 15); + TEST_PRINTF("this %020x a\n", UINT_MAX); + TEST_PRINTF("this %.0x a\n", 0); + TEST_PRINTF("this %-10.0x a\n", 15); + TEST_PRINTF("this %020X a\n", UINT_MAX); + TEST_PRINTF("this %.0X a\n", 0); + TEST_PRINTF("this %-10.0X a\n", 15); + TEST_PRINTF("this %#020u a\n", UINT_MAX); + TEST_PRINTF("this %#.0u a\n", 0); + TEST_PRINTF("this %#-10.0u a\n", 15); + TEST_PRINTF("this %#020x a\n", UINT_MAX); + TEST_PRINTF("this %#.0x a\n", 0); + TEST_PRINTF("this %#-10.0x a\n", 15); + TEST_PRINTF("this %#020X a\n", UINT_MAX); + TEST_PRINTF("this %#.0X a\n", 0); + TEST_PRINTF("this %#-10.0X a\n", 15); + TEST_PRINTF("this %+#020u a\n", UINT_MAX); + TEST_PRINTF("this %+#.0u a\n", 0); + TEST_PRINTF("this %+#-10.0u a\n", 15); + TEST_PRINTF("this %+#020x a\n", UINT_MAX); + TEST_PRINTF("this %+#.0x a\n", 0); + TEST_PRINTF("this %+#-10.0x a\n", 15); + TEST_PRINTF("this %+#020X a\n", UINT_MAX); + TEST_PRINTF("this %+#.0X a\n", 0); + TEST_PRINTF("this %+#-10.0X a\n", 15); + TEST_PRINTF("%% hai %15s%05i\n", "this num is: ", 621); + + return res; +} diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..c5a8010 --- /dev/null +++ b/test.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +make + +cc test.c libftprintf.a && ./a.out > test.out && [ \ + "$(awk "NR % 2 == 1 { print; }" test.out)" \ + == "$(awk "NR % 2 == 0 { print; }" test.out)" ] \ + || echo "TEST FAILED" +rm test.out +rm a.out -- 2.51.0