Introduced google test for L33
This commit is contained in:
26
Makefile
26
Makefile
@@ -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),)
|
||||
|
||||
Reference in New Issue
Block a user