mirror of
https://github.com/kuhyx/testsAndMisc-archive.git
synced 2026-07-04 11:43:13 +02:00
- C/lichess_random_engine, vocabulary_curve, misc/split, 1dvelocitysimulator, opening_learner: test suites added - CPP/miscelanious: tests added - TS/battery-status, champions_leauge_scores, two-inputs: tests added - python_pkg/fm24_searcher, wake_alarm: new packages added - Fix ruff/cppcheck/eslint/clang-format failures - Update .gitignore for C/C++ build artifacts
66 lines
1.8 KiB
Makefile
66 lines
1.8 KiB
Makefile
CC := gcc
|
|
CFLAGS := -O2 -std=c11 -Wall -Wextra -Wno-unused-parameter
|
|
COV := -O0 -g --coverage -std=c11 -Wall -Wextra -Wno-unused-parameter -Wno-return-type
|
|
LDFLAGS :=
|
|
|
|
SRC := main.c movegen.c search.c
|
|
BIN := random_engine
|
|
|
|
# Perft driver
|
|
PERFT_SRC := perft.c movegen.c
|
|
PERFT_BIN := perft
|
|
|
|
.PHONY: all clean rebuild test coverage
|
|
|
|
all: $(BIN)
|
|
|
|
$(BIN): $(SRC)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
$(PERFT_BIN): $(PERFT_SRC)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
# ---- tests ------------------------------------------------------------------
|
|
|
|
test_movegen: test_movegen.c movegen.c movegen.h
|
|
$(CC) $(COV) -o test_movegen test_movegen.c movegen.c
|
|
|
|
test_search: test_search.c search.c movegen.c movegen.h search.h
|
|
$(CC) $(COV) -o test_search test_search.c search.c movegen.c
|
|
|
|
test: test_movegen test_search
|
|
./test_movegen
|
|
./test_search
|
|
|
|
# ---- coverage ---------------------------------------------------------------
|
|
|
|
coverage: test_movegen test_search
|
|
./test_movegen
|
|
./test_search
|
|
lcov --capture --directory . --output-file coverage.info \
|
|
--rc branch_coverage=1 --ignore-errors inconsistent,mismatch,unused
|
|
lcov --extract coverage.info \
|
|
"$(CURDIR)/movegen.c" "$(CURDIR)/search.c" \
|
|
--output-file coverage.info \
|
|
--ignore-errors unused,inconsistent
|
|
@echo "--- Coverage Summary ---"
|
|
lcov --summary coverage.info --rc branch_coverage=1 2>&1 | tee /tmp/lcov_engine_summary.txt
|
|
@LINE_COV=$$(grep "lines" /tmp/lcov_engine_summary.txt | grep -oP '[0-9]+\.[0-9]+(?=%)'); \
|
|
echo "Line coverage: $${LINE_COV}%"; \
|
|
if [ "$$(echo "$${LINE_COV} < 100.0" | bc)" = "1" ]; then \
|
|
echo "FAIL: line coverage below 100%"; exit 1; \
|
|
fi
|
|
@echo "OK: 100% line coverage achieved"
|
|
|
|
run: $(BIN)
|
|
./$(BIN)
|
|
|
|
clean:
|
|
rm -f $(BIN) $(PERFT_BIN) test_movegen test_search \
|
|
*.gcda *.gcno *.gcov coverage.info
|
|
|
|
rebuild: clean all
|
|
|
|
.PHONY: perft
|
|
perft: $(PERFT_BIN)
|