From af6faffeb591deb7a11804368ef1a36e383f1d26 Mon Sep 17 00:00:00 2001 From: Leonardo Algarra Date: Sat, 18 Oct 2025 17:29:17 +0200 Subject: [PATCH] Splitting test to work with bonuses --- Makefile | 14 +++- test_printf.c | 20 +---- test_printf_bonus.c | 176 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 187 insertions(+), 23 deletions(-) create mode 100644 test_printf_bonus.c diff --git a/Makefile b/Makefile index d367c5b..ed90473 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: lalgarra +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/10/15 18:42:55 by lalgarra #+# #+# # -# Updated: 2025/10/15 19:28:30 by lalgarra ### ########.fr # +# Updated: 2025/10/18 16:30:09 by lalgarra ### ########.fr # # # # **************************************************************************** # @@ -17,9 +17,11 @@ LIBDIR = ../repo_algarra #LIBDIR = ../vogsphere_repo SOURCES = test_printf.c - OBJECTS = $(SOURCES:.c=.o) +SRCBONUS = test_printf_bonus.c +OBJBONUS = $(SRCBONUS:.c=.o) + CFLAGS += -Wall -Wextra -Werror -g3 -iquote $(LIBDIR) -O0 $(NAME): $(OBJECTS) $(LIBDIR)/libftprintf.a @@ -28,16 +30,20 @@ $(NAME): $(OBJECTS) $(LIBDIR)/libftprintf.a $(LIBDIR)/libftprintf.a: $(MAKE) -C $(LIBDIR) all +bonus: $(OBJBONUS) + $(MAKE) -C $(LIBDIR) fclean bonus + $(CC) $(CFLAGS) $(OBJBONUS) -L$(LIBDIR) -lftprintf -o $@ + .PHONY: clean fclean re clean: #removes objects (.o)# - rm -f $(OBJECTS) + rm -f $(OBJECTS) $(OBJBONUS) $(MAKE) -C $(LIBDIR) clean fclean: clean #removes objects (.o) and library# - rm -f $(NAME) + rm -f $(NAME) bonus $(MAKE) -C $(LIBDIR) fclean all: $(NAME) diff --git a/test_printf.c b/test_printf.c index aaedb34..dd0ac91 100644 --- a/test_printf.c +++ b/test_printf.c @@ -6,7 +6,7 @@ /* By: lalgarra +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/10/15 18:54:32 by lalgarra #+# #+# */ -/* Updated: 2025/10/17 21:04:44 by lalgarra ### ########.fr */ +/* Updated: 2025/10/18 16:22:08 by lalgarra ### ########.fr */ /* */ /* ************************************************************************** */ @@ -112,23 +112,6 @@ static void test04() ft_printf("ret=%i\n", ret); } -static void test50() -{ - char prefix[128]; - char sfmt[128]; - int ret; - - strcpy(prefix, "test50: "); - 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); -} - static void test99() { char prefix[128]; @@ -152,7 +135,6 @@ int main(void) test02(); test03(); test04(); - test50(); test99(); return (0); } diff --git a/test_printf_bonus.c b/test_printf_bonus.c new file mode 100644 index 0000000..5547193 --- /dev/null +++ b/test_printf_bonus.c @@ -0,0 +1,176 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_printf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lalgarra +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/10/15 18:54:32 by lalgarra #+# #+# */ +/* Updated: 2025/10/18 16:07:28 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 test05() +{ + char prefix[128]; + char sfmt[128]; + int ret; + + strcpy(prefix, "test05: "); + strcpy(sfmt, "%%5x: %5x; %%-5X: %-5X; %%#-5x: %#-5x; %%#5X: %#5X--eof; "); + printf("%s printf(): ", prefix); + ret = printf(sfmt, 0xfafe, 0xab, 0xfafe, 0xab); + printf("ret=%i\n", ret); + fflush(stdout); + ft_printf("%sft_printf(): ", prefix); + ret = ft_printf(sfmt, 0xfafe, 0xab, 0xfafe, 0xab); + ft_printf("ret=%i\n", ret); +} + +static void test50() +{ + char prefix[128]; + char sfmt[128]; + int ret; + + strcpy(prefix, "test50: "); + 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); +} + +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(); + test05(); + test50(); + test99(); + return (0); +}