From 202b1a07bacceb2c4b7041f3c95c0554f847c5d3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 1 Dec 2022 17:41:36 +0100 Subject: [PATCH] You need --coverage when linking as well Signed-off-by: Gilles Peskine --- Makefile | 5 +++-- scripts/lcov.sh | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 85fa093ae..272252e91 100644 --- a/Makefile +++ b/Makefile @@ -136,8 +136,9 @@ check: lib tests test: check ifndef WINDOWS -# note: for coverage testing, build with: -# make CFLAGS='--coverage -g3 -O0' +# Note: for coverage testing, build with: +# make CFLAGS='--coverage -g3 -O0' LDFLAGS='--coverage -g3 -O0' +# For the reference coverage measurement, see tests/scripts/basic-build-test.sh covtest: $(MAKE) check programs/test/selftest diff --git a/scripts/lcov.sh b/scripts/lcov.sh index 718166ddb..8d141eedf 100755 --- a/scripts/lcov.sh +++ b/scripts/lcov.sh @@ -6,8 +6,14 @@ Usage: $0 [-r] Collect coverage statistics of library code into an HTML report. General instructions: -1. Build the library with CFLAGS="--coverage -O0 -g3". +1. Build the library with CFLAGS="--coverage -O0 -g3" and link the test + programs with LDFLAGS="--coverage". This can be an out-of-tree build. + For example (in-tree): + make CFLAGS="--coverage -O0 -g3" LDFLAGS="--coverage" + Or (out-of-tree): + mkdir build-coverage && cd build-coverage && + cmake -D CMAKE_BUILD_TYPE=Coverage .. && make 2. Run whatever tests you want. 3. Run this script from the parent of the directory containing the library object files and coverage statistics files.