/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* test_printf.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: lalgarra +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/10/15 18:54:32 by lalgarra #+# #+# */ /* Updated: 2025/10/17 20:22:55 by lalgarra ### ########.fr */ /* */ /* ************************************************************************** */ #include "ft_printf.h" #include #include #include static char *get_begin(void) { return "%s printf() output: [BEGIN]"; } static char *get_ftbegin(void) { return "%s ft_printf() output: [BEGIN]"; } static char *get_end(void) { return "[END]; returns: %i\n"; } static void call_printf(const char *prefix, const char *sfmt, ...) { int ret; va_list args; printf(get_begin(), prefix); printf("format string: \"%s\"\n", sfmt); printf(get_begin(), prefix); va_start(args, sfmt); ret = vprintf(sfmt, args); va_end(args); printf(get_end(), ret); fflush(stdout); } static void test01() { char prefix[128]; char sfmt[128]; char arg1[128]; int ret; strcpy(prefix, "test01: "); strcpy(sfmt, "Hola %s Mundo"); strcpy(arg1, "Es%sto es una \xfa prueba"); call_printf(prefix, sfmt, arg1); printf(get_ftbegin(), prefix); fflush(stdout); ret = ft_printf(sfmt, arg1); printf(get_end(), ret); fflush(stdout); } static void test_int(char *prefix, char *sfmt, int val) { int ret; call_printf(prefix, sfmt, val); printf(get_ftbegin(), prefix); fflush(stdout); ret = ft_printf(sfmt, val); printf(get_end(), ret); fflush(stdout); } static void test02() { char prefix[128]; char sfmt[128]; strcpy(prefix, "test02: "); strcpy(sfmt, "Entero con %%d: %d"); test_int(prefix, sfmt, -325); } static void test03() { char prefix[128]; char sfmt[128]; strcpy(prefix, "test03: "); strcpy(sfmt, "Entero con %%i: %i"); test_int(prefix, sfmt, 9123325); } static void test04() { char prefix[128]; char sfmt[128]; int ret; strcpy(prefix, "test04: "); strcpy(sfmt, "%%s: NULL %s NULL; %%p: %p %p --eof; "); printf("%s printf(): ", prefix); ret = printf(sfmt, NULL, 0, 0); printf("ret=%i\n", ret); fflush(stdout); ft_printf("%sft_printf(): ", prefix); ret = ft_printf(sfmt, NULL, 0, 0); ft_printf("ret=%i\n", ret); } static void test99() { char prefix[128]; char sfmt[128]; int ret; strcpy(prefix, "test99: "); strcpy(sfmt, "%%c: %c; %%s: %s; %%p: %p; %%d: %d; %%i: %i; %%u: %u; %%x: %x; %%X: %X --eof; "); printf("%s printf(): ", prefix); ret = printf(sfmt, 'a', "Lorem ipsum", (void *)prefix, 125, -128, 325u, 0xfa, 0xfb); printf("ret=%i\n", ret); fflush(stdout); ft_printf("%sft_printf(): ", prefix); ret = ft_printf(sfmt, 'a', "Lorem ipsum", (void *)prefix, 125, -128, 325u, 0xfa, 0xfb); ft_printf("ret=%i\n", ret); } int main(void) { test01(); test02(); test03(); test04(); test99(); return (0); }