Introduced google test for L33

This commit is contained in:
2025-11-28 06:05:40 +09:00
parent b42db10e14
commit c97093fe46
5 changed files with 139 additions and 7 deletions

View File

@@ -9,18 +9,22 @@ VAL_DIR = validator
INC_DIR = include
CHK_DIR = checker
TEST_DIR = src/test
BUILD_DIR = build
BUILD_TARGET_DIR = $(BUILD_DIR)/target
BUILD_GEN_DIR = $(BUILD_DIR)/gen
BUILD_VAL_DIR = $(BUILD_DIR)/val
BUILD_CHK_DIR = $(BUILD_DIR)/chk
BUILD_TEST_DIR = $(BUILD_DIR)/test
LOG_DIR = $(BUILD_DIR)/logs
BUILD_IN_DIR = $(BUILD_DIR)/input
BUILD_OUT_A_DIR = $(BUILD_DIR)/$(SOL_A)_out
BUILD_OUT_B_DIR = $(BUILD_DIR)/$(SOL_B)_out
DIRS = $(BUILD_DIR) $(BUILD_TARGET_DIR) $(BUILD_GEN_DIR) $(BUILD_VAL_DIR) $(BUILD_CHK_DIR) $(LOG_DIR) $(BUILD_IN_DIR) $(BUILD_OUT_A_DIR) $(BUILD_OUT_B_DIR)
DIRS = $(BUILD_DIR) $(BUILD_TARGET_DIR) $(BUILD_GEN_DIR) $(BUILD_VAL_DIR) $(BUILD_CHK_DIR) $(LOG_DIR) $(BUILD_IN_DIR) $(BUILD_OUT_A_DIR) $(BUILD_OUT_B_DIR) $(BUILD_TEST_DIR)
CXXFLAGS = -Wall -O2 -std=c++2a
GENFLAGS = -N $(N) -M $(M) -pm $(pm)
@@ -56,7 +60,7 @@ pm ?= 0.1
all: $(SOLS_EXE) $(GENS_EXE) $(VAL_EXE) $(CHK_EXE) $(DIRS)
@echo "All executables compiled in $(BUILD_DIR)/"
$(BUILD_DIR) $(BUILD_TARGET_DIR) $(BUILD_GEN_DIR) $(BUILD_VAL_DIR) $(BUILD_CHK_DIR) $(LOG_DIR) $(BUILD_IN_DIR) $(BUILD_OUT_A_DIR) $(BUILD_OUT_B_DIR):
$(BUILD_DIR) $(BUILD_TARGET_DIR) $(BUILD_GEN_DIR) $(BUILD_VAL_DIR) $(BUILD_CHK_DIR) $(LOG_DIR) $(BUILD_IN_DIR) $(BUILD_OUT_A_DIR) $(BUILD_OUT_B_DIR) $(BUILD_TEST_DIR):
@echo "Creating directory: $@"
@mkdir -p $@
@@ -83,6 +87,10 @@ $(BUILD_IN_DIR)/input%: $(GEN_TO_RUN) | $(BUILD_IN_DIR)
echo "Using Seed: $$SEED" >&2; \
./$(GEN_TO_RUN) $(GENFLAGS) "$$SEED" > $@
$(BUILD_TEST_DIR)/%: $(TEST_DIR)/%.cpp | $(BUILD_TEST_DIR)
@echo "Compiling Unit Test $< -> $@"
$(CXX) $(CXXFLAGS) -I$(INC_DIR) -I$(SRC_DIR)/bsb -o $@ $< -lgtest -lgtest_main -pthread
.PHONY: force
force:
@@ -152,10 +160,18 @@ else
@echo "OK: ID=$(id) outputs match!"
endif
UNIT_TEST_SRCS = $(wildcard $(TEST_DIR)/*.cpp)
UNIT_TEST_NAMES = $(patsubst $(TEST_DIR)/%.cpp, %, $(UNIT_TEST_SRCS))
.PHONY: test
test: all $(LOG_DIR) $(BUILD_OUT_A_DIR) $(BUILD_OUT_B_DIR)
ifeq ($(id),)
ifdef target
@# Case 1: Unit Test 실행 (예: make test target=L33)
@echo "--- Running Unit Test Target: [$(target)] ---"
@$(MAKE) --no-print-directory $(BUILD_TEST_DIR)/$(target)
@echo "-------------------------------------------"
@./$(BUILD_TEST_DIR)/$(target)
else ifeq ($(id),)
@echo "--- Running $(TEST_COUNT) tests (Comparing $(SOL_A) vs $(SOL_B)) ---"
@echo "--- Using Generator [$(gen)] (N=$(N), M=$(M)) ---"
@LOG_FILE=$(LOG_DIR)/test_run_$$(date +%Y%m%d_%H%M%S).log; \
@@ -194,6 +210,10 @@ else
@$(MAKE) --no-print-directory check id=$(id) gen=$(gen) SOL_A=$(SOL_A) SOL_B=$(SOL_B) N=$(N) M=$(M)
endif
.PHONY: $(UNIT_TEST_NAMES)
$(UNIT_TEST_NAMES):
@$(MAKE) --no-print-directory test target=$@
.PHONY: bench
bench: all
ifeq ($(id),)