From 2eb7b3c2f195c568b7c6da10d11eff7423e989b3 Mon Sep 17 00:00:00 2001 From: omicron Date: Sat, 5 Apr 2025 21:46:09 +0200 Subject: [PATCH] use llvm to generate test coverage --- make/test.mk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/make/test.mk b/make/test.mk index 464ecb4..b7a00eb 100644 --- a/make/test.mk +++ b/make/test.mk @@ -1,9 +1,21 @@ .PHONY: test +CFLAGS?=-Wall -Wextra -Wpedantic -O0 -g3 -std=c23 -fno-omit-frame-pointer -fno-optimize-sibling-calls -D_POSIX_C_SOURCE=200809L -fprofile-instr-generate -fcoverage-mapping +LDFLAGS?=-fprofile-instr-generate BUILD_DIR=build/test/ TARGET=oas-tests SOURCES = $(filter-out src/main.c, $(shell find src/ tests/ -type f -name '*.c')) -include make/base.mk test: $(BUILD_DIR)$(TARGET) - $(BUILD_DIR)$(TARGET) + mkdir -p reports/coverage + LLVM_PROFILE_FILE="reports/coverage/tests.profraw" $(BUILD_DIR)$(TARGET) + llvm-profdata merge -sparse reports/coverage/tests.profraw -o reports/coverage/tests.profdata + llvm-cov show $(BUILD_DIR)$(TARGET) -instr-profile=reports/coverage/tests.profdata -format=html -output-dir=reports/coverage/html -ignore-filename-regex="tests/.*" + @echo "--" + @echo "Test coverage:" + @echo "file://$$(realpath reports/coverage/html/index.html)" + @echo "--" + +clean: + rm -rf reports/coverage