coverage: exclude assert branches

Assertions have two branches, and the fail branch must never be taken,
so it does not make sense to count them in branch coverage. Ignore all
branches on lines matching weston_assert_ regular expression.

The RE must match from the beginning of the line, hence allow leading
whitespace. This is a Python 're' module usage thing. Unfortunately it
is impossible to pass a backslash in a meson.build file as an argument
to a command[1], so let's use a configuration file.

[1]: https://github.com/mesonbuild/meson/issues/1564

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen 2026-04-17 16:29:42 +03:00 committed by Leandro Ribeiro
parent 73a57eba64
commit 5fa20c75ca
2 changed files with 6 additions and 4 deletions

5
coverage/gcovr.cfg Normal file
View file

@ -0,0 +1,5 @@
exclude-branches-by-pattern = \s*(?:weston_assert_)
html-nested = yes
html-theme = github.green
html-title = Weston test suite coverage
print-summary = yes

View file

@ -18,12 +18,9 @@ run_target(
command: [
prog_gcovr,
'--root', '@SOURCE_ROOT@',
'--config', files('gcovr.cfg'),
'--cobertura', meson.current_build_dir() / 'cobertura.xml',
'--html', meson.current_build_dir() / 'index.html',
'--html-nested',
'--html-theme', 'github.green',
'--html-title', 'Weston test suite coverage',
'--print-summary',
meson.project_build_root(),
],
)