1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
To see some examples of LCOV generated HTML coverage reports,
and point a web browser into the resulting reports:
Default view:
- Point your browser to
output/index.html
Hierarchical view:
- Point your browser to
hierarchical/index.html
- Note that that the coverage data is the same - only the report
format is different:
- Follows directory structure, similar to MS file viewer
('--hierarchical' flag)
- Additional navigation links also enabled
('--show-navigation' flag)
Differential coverage:
- Point your browser to
exampleRepo/differential/index.html
- This example is slightly complicated because it emulates a moderately
realistic project in that it pretends to see project changes:
- updates to two project source files example.c and iterate.c
- change to the test suite: only one test of updated
code rather than 3 of the original code
- The Makefile simulates this by checking code into a git repo,
building an executable and then updating a few source files, rebuildling,
and running some tests.
Code review:
- point your browser to
exampleRepo/differential/index.html
- This example builds on the "Differential coverage" example, above
to emulate a possible code review methodology in which adds code
coverage to the review criteria.
The intent is to generate a reduced report which shows only the
code changes which negatively affect code coverage - while removing
other details which only distract from the review.
- Use the 'genhtml --select-script ...' feature to show only new
source code which was negatively affected by the change under
review (uncovered and/or lost code).
You might want to modify the select criteria to include positive
change (e.g., GNC, GBC, and GIC categories).
- Real use cases are likely to use more sophisticated select-script
callbacks (e.g., to select from a range of changelists).
Feel free to edit the Makefile or to run the lcov utilities directly,
to see the effect of other options that you find in the lcov man pages.
|