diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 149 |
1 files changed, 149 insertions, 0 deletions
@@ -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"); +} |
