Exclusion Markers
You can exclude parts of your code from coverage metrics.
If
GCOVR_EXCL_LINE
appears within a line, that line is ignored.If
GCOVR_EXCL_START
appears within a line, all following lines (including the current line) are ignored until aGCOVR_EXCL_STOP
marker is encountered.If
GCOVR_EXCL_FUNCTION
in the line of the function definition but not in front of the definition, the lines of the function are ignored. This marker needs thegcov
JSON format version 2 which is generated bygcc-14
. If the needed info isn’t available a warning is printed if the tag is found. Also a warning is printed if no function is defined at the tag location. See also--exclude-function
If
GCOVR_EXCL_BR_*
markers are used the same exclusion rules apply as above, with the difference being that they are only taken into account for branch coverage.If
GCOVR_EXCL_BR_SOURCE
the branches which have one of the block ids of the current line as destination block are excluded from the coverage. This can be used e.e. in adefault
branch which is used for error handling to exclude the source branch from the coverage.
Instead of GCOVR_*
,
the markers may also start with GCOV_*
or LCOV_*
.
However, start and stop markers must use the same style.
The prefix is configurable with the option
--exclude-pattern-prefix
.
The excluded region not includes the line with the stop marker:
code
code
excluded // GCOVR_EXCL_START
still excluded
...
still excluded
NOT excluded // GCOVR_EXCL_STOP
code
code
In the excluded regions, any coverage is excluded.
Added in version 8.0: If --verbose
is used the exclusion ranges are logged.