115 lines
2.5 KiB
C
115 lines
2.5 KiB
C
#include <stdio.h>
|
|
#include <limits.h>
|
|
#include "include/ft_printf.h"
|
|
|
|
void test(const char *name, int (*test_func)(void))
|
|
{
|
|
printf("\n===== %s =====\n", name);
|
|
test_func();
|
|
}
|
|
|
|
int test_char(void)
|
|
{
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%c]\n", 'A');
|
|
r2 = ft_printf("ft_printf: [%c]\n", 'A');
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int test_string(void)
|
|
{
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%s]\n", "Hello");
|
|
r2 = ft_printf("ft_printf: [%s]\n", "Hello");
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
r1 = printf("printf: [%s]\n", NULL);
|
|
r2 = ft_printf("ft_printf: [%s]\n", NULL);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int test_pointer(void)
|
|
{
|
|
int x = 42;
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%p]\n", &x);
|
|
r2 = ft_printf("ft_printf: [%p]\n", &x);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
r1 = printf("printf: [%p]\n", NULL);
|
|
r2 = ft_printf("ft_printf: [%p]\n", NULL);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int test_decimal(void)
|
|
{
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%d] [%i]\n", 42, -42);
|
|
r2 = ft_printf("ft_printf: [%d] [%i]\n", 42, -42);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
r1 = printf("printf: [%d]\n", INT_MIN);
|
|
r2 = ft_printf("ft_printf: [%d]\n", INT_MIN);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int test_unsigned(void)
|
|
{
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%u]\n", 4294967295u);
|
|
r2 = ft_printf("ft_printf: [%u]\n", 4294967295u);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int test_hex(void)
|
|
{
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%x] [%X]\n", 3735928559u, 3735928559u);
|
|
r2 = ft_printf("ft_printf: [%x] [%X]\n", 3735928559u, 3735928559u);
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int test_percent(void)
|
|
{
|
|
int r1, r2;
|
|
|
|
r1 = printf("printf: [%%]\n");
|
|
r2 = ft_printf("ft_printf: [%%]\n");
|
|
printf("Return printf: %d | Return ft_printf: %d\n", r1, r2);
|
|
|
|
return (0);
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
test("CHAR", test_char);
|
|
test("STRING", test_string);
|
|
test("POINTER", test_pointer);
|
|
test("DECIMAL", test_decimal);
|
|
test("UNSIGNED", test_unsigned);
|
|
test("HEX", test_hex);
|
|
test("PERCENT", test_percent);
|
|
|
|
printf("\n===== ALL TESTS DONE =====\n");
|
|
return (0);
|
|
}
|
|
|