Review requested: updated gcov/lcov report shell script

Maarten Hoes hoes.maarten at
Thu Jun 9 15:55:34 UTC 2022


After my previous emails on the gcov/lcov code coverage subject on this
list, I have modified the existing lcov html report generating script [1],
and would like some feedback/reviewer on the modifications.

The major changes compared to the previous version are:

The script was reworked to make its usage simpler. The current script
requires you to run the script multiple times, in multiple 'steps/phases',
and for you to run a manual 'make check' in between these steps at some
point. The new version only needs to be run once, and only needs flags to
tell it where the sources are, where the report should go, etc. With the
new version, you basically don't have to know anything about lcov/gcov,
while the current version assumes you have a basic understanding of how
lcov works / should be used.

The order of the various steps in the script has been changed, to (more)
correctly reflect how the lcov tool should be used (both the current script
and the wiki page [4] get this wrong, I'm thinking about updating the wiki
as well).

Some open points and notes (which I should perhaps put in a 'NOTES' or
'TODO' file next to the actual shell script in git ?) are :

The current build system tries to enforce building Skia with clang, which
led to incompatibilities between clang and gcc [2]. But - intended or not -
when clang is not installed, Skia gets built with gcc as fallback. The
script currently does not verify if clang is indeed not installed, but will
fail when parts of the build (Skia) get built with clang, and other parts
with gcc.

On my test system, 3 checks of 'make check' (specifically and only in
combination with a 'gcov' build) fail when run on my PC (UITest_solver,
CppunitTest_sccomp_solver, CppunitTest_sccomp_swarmsolvertest). It is
currently assumed that the 'slowness' of my PC leads to timeouts, and
running the tests on a faster system will resolve this issue [3]. This is
currently not verified as I do not have a faster system at my disposal. As
it currently stands, the script fails when 'make check' fails, and in that
case no report is generated.

The current directory in git for the script has a subdirectory called
'tinderbox', apparently with things for use with, well, a 'tinderbox'. I
wonder how useful and/or relevant this still is ? I can't really remember
much about this, even though 'git log' tells me I'm the author of the
things in there. Is this something that still is relevant today and needs
to be updated along with the new script, or can this safely be removed ?

PS: Sorry, but as a result of my ferocious editing, the 'diff' between the
old and new versions of the script are a bit of a mess, and doesn't really
make sense anymore.

- Maarten




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the LibreOffice mailing list