/* 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 . */ #include // for printf() #include // 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"); }