minishell/tests/Makefile

63 lines
1.3 KiB
Makefile
Raw Normal View History

# make gets confused if a file with the same name exists in the sources, so some
# file are prefixed with test_
rawtests = \
2025-03-21 14:06:33 +01:00
expansion \
2025-03-11 15:20:19 +01:00
test_cmdgroup_parsing \
2025-03-07 11:52:28 +01:00
test_here_doc \
test_wordlist_idx \
test_redirection_parsing \
test_quote_removal \
test_cmdlist_use_after_free \
test_metacharacters \
test_parse_command_lists \
test_parse_pipelines \
test_parse_simple_cmds \
test_env_manip \
test_word_splitting \
2025-02-13 17:32:51 +01:00
ifeq ($(CFLAGS),)
CFLAGS = -Wall -Wextra -Werror -g
endif
tests = $(addprefix test_,$(rawtests))
run_tests = $(addprefix run_test_,$(rawtests))
test_objs = $(addsuffix .o,$(tests))
objs := $(addprefix ../,$(objs)) \
testutil.o \
parse_command_list.o \
parse_pipeline.o \
all_objs = $(objs) $(test_objs)
deps = $(all_objs:.o=.d)
2025-02-13 15:17:30 +01:00
LDLIBS = \
-lreadline \
-lft
LIBFTDIR = ../libft/
LIBFT = $(LIBFTDIR)libft.a
IFLAGS = -I$(LIBFTDIR)
LINCLUDE = -L$(LIBFTDIR)
.PHONY: run fclean run_test_%
2025-02-13 17:32:51 +01:00
.NOTPARALLEL: run
run: $(run_tests)
2025-02-13 17:32:51 +01:00
@echo "Finished running C tests"
-include $(deps)
%.o: %.c
2025-02-13 15:17:30 +01:00
$(CC) -c $(CFLAGS) $(IFLAGS) -o $*.o $*.c
$(CC) -MM $(CFLAGS) $(IFLAGS) $*.c > $*.d
test_%: %.o $(objs)
$(CC) $(CFLAGS) -rdynamic -o $@ $*.o $(objs) $(LINCLUDE) $(LDLIBS)
run_test_%: test_%
2025-02-13 17:32:51 +01:00
@echo
@echo "====== Now running test: $* ======"
2025-02-13 17:32:51 +01:00
@echo
./test_$*
@echo "====== End of test: $* ======"
fclean:
rm -f $(tests)