libft_testing/Makefile
2025-10-03 21:21:01 +02:00

53 lines
1.9 KiB
Makefile

# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/10/03 18:03:12 by lalgarra #+# #+# #
# Updated: 2025/10/03 21:16:37 by lalgarra ### ########.fr #
# #
# **************************************************************************** #
# Location of your libft.a; it must already exist
LIBDIR = ../repo_libft_algarra
#LIBDIR = ../repo_algarra
CFLAGS += -Wall -Wextra -Werror -g3 -iquote $(LIBDIR)
TESTS := ft_isalpha_test ft_isdigit_test ft_isalnum_test ft_isascii_test \
ft_isprint_test
%_test : %_test.c
$(CC) $(CFLAGS) $*_test.c -L$(LIBDIR) -lft -o $*_test
%_actual.output : %_test
@./$*_test > ./$*_actual.output ;
%_report : %_test %_actual.output
-(diff -a $*_expected.output $*_actual.output \
&& echo "Test OK") > $*_report
EXES = $(TESTS)
ACT_OUTPUTS = $(TESTS:_test=_actual.output)
ACT_REPORTS = $(TESTS:_test=_report)
.SECONDARY = $(ACT_REPORTS) $(ACT_OUTPUTS)
# Rule to create a 'report' file with info about the execution of
# tests in $(TEST)
report : $(EXES) $(ACT_OUTPUTS) $(ACT_REPORTS)
@rm -f report ;
@$(foreach E, $(TESTS), \
$(eval T = $(subst _test,,$(E))) \
$(eval R = $(subst _test,_report,$(E))) \
echo "=== $(T) ===" >> report ; \
cat $(R) >> report ; \
)
fclean:
rm -f report $(ACT_REPORTS) $(ACT_OUTPUTS) $(EXES)