Files
zvfs/test/Makefile
2026-03-02 07:27:48 +00:00

43 lines
953 B
Makefile
Executable File

CC ?= gcc
CFLAGS ?= -O2 -Wall -Wextra -std=gnu11
SRCS := $(sort $(wildcard test_*.c))
BIN_DIR ?= bin
BIN_NAMES := $(SRCS:.c=)
BINS := $(addprefix $(BIN_DIR)/,$(BIN_NAMES))
RUN_DIR ?= /tmp/zvfs-test
RUN_BINS ?= test_basic test_lseek test_dual_open_same_file test_two_files \
test_single_file_perf test_single_file_random_perf \
test_single_file_random_noaligned_perf test_write_file test_read_delete_file
.PHONY: all clean list run-test
all: $(BINS)
$(BIN_DIR):
mkdir -p $@
$(BIN_DIR)/%: %.c test_utils.h | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
list:
@printf "%s\n" $(BINS)
run-test: all
@mkdir -p $(RUN_DIR)
@pass=0; fail=0; \
for t in $(RUN_BINS); do \
printf "\n[RUN] %s\n" "$$t"; \
if ./$(BIN_DIR)/$$t $(RUN_DIR); then \
pass=$$((pass + 1)); \
else \
fail=$$((fail + 1)); \
fi; \
done; \
printf "\n=== run-test summary: PASS=%d FAIL=%d ===\n" $$pass $$fail; \
test $$fail -eq 0
clean:
$(RM) $(BINS)
-rmdir $(BIN_DIR)