/*
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");
}