aboutsummaryrefslogtreecommitdiffstats
path: root/tests/Makefile
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-21 15:49:06 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-21 15:51:44 +0100
commit671a58519ef6207b54947ff70eea497ff7eb58ae (patch)
tree783a971119bfed965113b84bc306ba941e884663 /tests/Makefile
parentd699849b2360f90c61f645c5d4d4232cd3e1c962 (diff)
downloadLibft-671a58519ef6207b54947ff70eea497ff7eb58ae.tar.gz
Libft-671a58519ef6207b54947ff70eea497ff7eb58ae.zip
Restructure project layout and clean up test suite
Move sources to src/, header to inc/, and tests to tests/src/. Update Makefiles and .gitignore for the new layout. Refactor test harness: add crash-wrapper macros (_S_CRASH, _S_CRASH_I, _S_CRASH_V, _S_CRASH_BUF) replacing 58 hand-written wrappers, add shared _s_test_int_range helper eliminating duplicate _s_test_func, add _S_RAND_ITERS constant, move srand() to main() in all test binaries, and add Doxygen comments to test_utils.h.
Diffstat (limited to 'tests/Makefile')
-rw-r--r--tests/Makefile29
1 files changed, 20 insertions, 9 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 319fa22..f7f7ed4 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,31 +1,42 @@
CC = cc
-CFLAGS =
-LIB = ../libft.a
+CFLAGS = -I ../inc -I inc
+
+SRCDIR = src
+BINDIR = bin
+
+LIB = ../lib/libft.a
TESTS = test_strlen test_is test_mem test_cmp test_case test_strl test_search \
test_atoi test_alloc
-all: $(TESTS)
- @for t in $(TESTS); do \
- echo "--- Running $$t ---"; \
+BINS = $(TESTS:%=$(BINDIR)/%)
+
+all: $(BINS)
+ @for t in $(BINS); do \
+ echo "$$(basename $$t):"; \
./$$t; \
done
-test_%: test_%.c $(LIB)
+# Order-only prerequisite (|): create bin/ if missing, but don't
+# rebuild binaries just because the directory's mtime changed.
+$(BINDIR)/test_%: $(SRCDIR)/test_%.c $(LIB) | $(BINDIR)
$(CC) $(CFLAGS) -o $@ $< $(LIB)
# Tests comparing against BSD functions (strlcpy, strlcat, strnstr)
# need -lbsd since these are not part of glibc by default.
-test_strl: test_strl.c $(LIB)
+$(BINDIR)/test_strl: $(SRCDIR)/test_strl.c $(LIB) | $(BINDIR)
$(CC) $(CFLAGS) -o $@ $< $(LIB) -lbsd
-test_search: test_search.c $(LIB)
+$(BINDIR)/test_search: $(SRCDIR)/test_search.c $(LIB) | $(BINDIR)
$(CC) $(CFLAGS) -o $@ $< $(LIB) -lbsd
+$(BINDIR):
+ mkdir -p $(BINDIR)
+
$(LIB):
$(MAKE) -C ..
clean:
- rm -f $(TESTS)
+ rm -f $(BINS)
.PHONY: all clean