|
|
@@ -4,6 +4,9 @@ BUILD_TARGETS = main quantize quantize-stats perplexity embedding vdot train-tex
|
|
|
# Binaries only useful for tests
|
|
|
TEST_TARGETS = tests/test-llama-grammar tests/test-grammar-parser tests/test-double-float tests/test-grad0 tests/test-opt tests/test-quantize-fns tests/test-quantize-perf tests/test-sampling tests/test-tokenizer-0-llama tests/test-tokenizer-0-falcon tests/test-tokenizer-1
|
|
|
|
|
|
+# Code coverage output files
|
|
|
+COV_TARGETS = *.gcno tests/*.gcno *.gcda tests/*.gcda *.gcov tests/*.gcov lcov-report gcovr-report
|
|
|
+
|
|
|
default: $(BUILD_TARGETS)
|
|
|
|
|
|
test:
|
|
|
@@ -23,6 +26,18 @@ test:
|
|
|
|
|
|
all: $(BUILD_TARGETS) $(TEST_TARGETS)
|
|
|
|
|
|
+coverage: ## Run code coverage
|
|
|
+ gcov -pb tests/*.cpp
|
|
|
+
|
|
|
+lcov-report: coverage ## Generate lcov report
|
|
|
+ mkdir -p lcov-report
|
|
|
+ lcov --capture --directory . --output-file lcov-report/coverage.info
|
|
|
+ genhtml lcov-report/coverage.info --output-directory lcov-report
|
|
|
+
|
|
|
+gcovr-report: coverage ## Generate gcovr report
|
|
|
+ mkdir -p gcovr-report
|
|
|
+ gcovr --root . --html --html-details --output gcovr-report/coverage.html
|
|
|
+
|
|
|
ifndef UNAME_S
|
|
|
UNAME_S := $(shell uname -s)
|
|
|
endif
|
|
|
@@ -84,6 +99,11 @@ ifdef LLAMA_SERVER_VERBOSE
|
|
|
MK_CPPFLAGS += -DSERVER_VERBOSE=$(LLAMA_SERVER_VERBOSE)
|
|
|
endif
|
|
|
|
|
|
+
|
|
|
+ifdef LLAMA_CODE_COVERAGE
|
|
|
+ CXXFLAGS += -fprofile-arcs -ftest-coverage -dumpbase ''
|
|
|
+endif
|
|
|
+
|
|
|
ifdef LLAMA_DISABLE_LOGS
|
|
|
CFLAGS += -DLOG_DISABLE_LOGS
|
|
|
CXXFLAGS += -DLOG_DISABLE_LOGS
|
|
|
@@ -399,7 +419,7 @@ libllama.so: llama.o ggml.o $(OBJS)
|
|
|
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
|
|
|
|
|
clean:
|
|
|
- rm -vf *.o tests/*.o *.so *.dll benchmark-matmult build-info.h $(BUILD_TARGETS) $(TEST_TARGETS)
|
|
|
+ rm -vrf *.o tests/*.o *.so *.dll benchmark-matmult build-info.h *.dot $(COV_TARGETS) $(BUILD_TARGETS) $(TEST_TARGETS)
|
|
|
|
|
|
#
|
|
|
# Examples
|