Hi Dmitry, On Mon, 2021-01-11 at 18:33 +0300, Dmitry V. Levin wrote: > On Mon, Jan 11, 2021 at 04:07:38PM +0100, Mark Wielaard wrote: > > > lcov --exclude was introduced by lcov commit v1.14~19; yes, we can check > whether e.g. "lcov --exclude=/ --version" works. Alternatively, we could > use --directory option, but that would require some discipline in > maintaining the list of directories. What's your preferred choice?
Could we somehow base it on the toplevel SUBDIRS? Maybe (untested) COVDIRS = $(subst tests,,$(SUBDIRS)) COVDARGS = $(patsubst %,-d%,$(COVDIRS)) > > > +COVERAGE_OUTPUT_FILE = $(PACKAGE_NAME)-$(PACKAGE_VERSION).lcov > > > +COVERAGE_OUTPUT_DIRECTORY = $(PACKAGE_NAME)-$(PACKAGE_VERSION)- > > > coverage > > By the way, I'm not sure whether we need -$(PACKAGE_VERSION) in > COVERAGE_OUTPUT_FILE and COVERAGE_OUTPUT_DIRECTORY. Maybe not in the output dir/file, but it is nice to have in the title. > > Note that the elfutils-htdocs git repo (which holds the website) > > contains an update-coverage.sh script that does: > > > > # Note we want srcdir == builddir for better output. > > ${tempdir}/elfutils/configure --enable-maintainer-mode --enable-gcov > > make -j$(nproc) > > make check > > lcov -c -d backends -d lib -d libasm -d libcpu -d libdw -d libdwelf > > \ > > -d libdwfl -d libebl -d libelf -d src -d debuginfod \ > > --no-external > lcov.out > > genhtml -s --legend -t "elfutils-${version}" -o coverage lcov.out > > > > So that is executed at the top-level instead of inside the tests dir > > and instead of --exclude it uses -d which IMHO gives slightly nicer > > output by only showing the top-level dirs. > > I suppose the difference between --exclude and -d is only visible when > srcdir != builddir. If these directories are different, then > update-coverage.sh will likely miss some information because of this > explicit list of directories. Yeah, so if using --exclude fixes that, then please do use that instead. Cheers, Mark