Tests are critical because they find bugs and regressions, enforce better designs and make code easier to maintain. Code coverage helps you ensure your tests are thorough.
Chromium CLs can show a line-by-line breakdown of test coverage. You can use it to ensure you only submit well-tested code.
To see code coverage for a Chromium CL, trigger a CQ dry run, and once the builds finish and code coverage data is processed successfully, look at the change view to see absolute and incremental code coverage percentages:
Absolute coverage percentage is the percentage of lines covered by tests out of all the lines in the file, while incremental coverage percentage only accounts for newly added or modified lines.
To further dig into specific lines that are not covered by tests, look at the right column of the side by side diff view:
Code coverage data is shared between patchsets that are commit-message-edit or trivial-rebase away, however, if a newly uploaded patchset has non-trivial code change, a new CQ dry run must be triggered before coverage data shows up again.
The code coverage tool currently supports:
- C/C++ code for Chromium on Linux.
- C/C++ code for Chromium on Chromium OS.
support for more platforms and more languages is in progress.
For any breakage report and feature requests, please file a bug.
For questions and general discussions, please join code-coverage group.
There are several possible reasons:
- A particular source file/test may not be available on a particular project or
platform. As of now, only
chromium/src
project andLinux
platform is supported. - There is a bug in the pipeline. Please file a bug to report the breakage.
Please refer to code_coverage.md for how code coverage works in Chromium in general, and specifically, for per-CL coverage in Gerrit, the clang_code_coverage_wrapper is used to compile and instrument ONLY the source files that are affected by the CL for the sake of performance and a chromium-coverage Gerrit plugin is used to display code coverage information in Gerrit.