summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c149
1 files changed, 149 insertions, 0 deletions
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..cb50626
--- /dev/null
+++ b/main.c
@@ -0,0 +1,149 @@
+/*
+ft_printf tester Copyright (C) 2026 yctct
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+#include <stdio.h> // for printf()
+#include <limits.h> // for LONG_MAX
+#include "ft_printf.h"
+
+int main(void)
+{
+ int counter1;
+ int counter2;
+ char *p;
+ int *p2;
+ int *p3;
+ int *p4;
+ int i;
+ long j;
+ long k;
+ char *null_string;
+
+ printf("------------------\n");
+ printf("Test for specifier: c\n");
+ counter1 = ft_printf("ft_printf: %c\n", 'c');
+ counter2 = printf("printf : %c\n", 'c');
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: s\n");
+ counter1 = ft_printf("ft_printf: %s\n", "string");
+ counter2 = printf("printf : %s\n", "string");
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: i\n");
+ counter1 = ft_printf("ft_printf: %i\n", -42);
+ counter2 = printf("printf : %i\n", -42);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: d\n");
+ counter1 = ft_printf("ft_printf: %d\n", -42);
+ counter2 = printf("printf : %d\n", -42);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: u\n");
+ counter1 = ft_printf("ft_printf: %u\n", -42);
+ counter2 = printf("printf : %u\n", -42);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: x with 101010\n");
+ counter1 = ft_printf("ft_printf: %x\n", 101010);
+ counter2 = printf("printf : %x\n", 101010);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: x with -1\n");
+ counter1 = ft_printf("ft_printf: %x\n", -1);
+ counter2 = printf("printf : %x\n", -1);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("Test for specifier: X with value 101010\n");
+ counter1 = ft_printf("ft_printf: %X\n", 101010);
+ counter2 = printf("printf : %X\n", 101010);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: X with value -1\n");
+ counter1 = ft_printf("ft_printf: %X\n", -1);
+ counter2 = printf("printf : %X\n", -1);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: p\n");
+ p = "x";
+ counter1 = ft_printf("ft_printf: %p\n", p);
+ counter2 = printf("printf : %p\n", p);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: p with i = 17\n");
+ i = 17;
+ p2 = &i;
+ counter1 = ft_printf("ft_printf: %p\n", p2);
+ counter2 = printf("printf : %p\n", p2);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: p with address FFFFFFFF\n");
+ j = LONG_MAX;
+ p3 = (void *)j; // we check FFFFFFFF as an address not a value
+ counter1 = ft_printf("ft_printf: %p\n", p3);
+ counter2 = printf("printf : %p\n", p3);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("Test for specifier: p with address 0\n");
+ k = 0;
+ p4 = (void *)k; // we check 0 as an address not a value
+ counter1 = ft_printf("ft_printf: %p %p\n", p4, p4);
+ counter2 = printf("printf : %p %p\n", p4, p4);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ counter1 = ft_printf("ft_printf: %%\n");
+ counter2 = printf("printf : %%\n");
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ null_string = NULL;
+ counter1 = ft_printf("ft_printf: %s\n", null_string);
+ counter2 = printf("printf : %s\n", null_string);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ counter1 = ft_printf("ft_printf: %y hola\n");
+ counter2 = printf("printf : %y hola\n");
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ counter1 = ft_printf("");
+ ft_printf("\n");
+ counter2 = printf("");
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ counter1 = ft_printf(0);
+ ft_printf("\n");
+ counter2 = printf(0);
+ printf("counter : %i\n", counter1);
+ printf("counter : %i\n", counter2);
+ printf("------------------\n");
+ printf("END OF TESTS\n");
+}