blob: 5f9212239b535e79bad45ab91f3e3ece6829eb18 [file] [log] [blame] [view]
# Code coverage in Chromium
## Coverage script.
[Coverage script] helps to generate clang source-based code coverage report
locally and make it easy to identify under-covered areas.
Currently, this script supports running on Linux, Mac, iOS and ChromeOS
platforms, and supports displaying code coverage results per directory, per
component and per file.
In order to generate code coverage report, you need to first add
`use_clang_coverage=true` and `is_component_build=false` GN flags to args.gn
file in your build output directory (e.g. out/coverage).
Existing implementation requires `is_component_build=false` flag
because coverage info for dynamic libraries may be missing and
`is_component_build` is set to true by `is_debug` unless it is explicitly set
to false.
Example usage:
```
gn gen out/coverage --args='use_clang_coverage=true is_component_build=false'
gclient runhooks
python tools/code_coverage/coverage.py crypto_unittests url_unittests
-b out/coverage -o out/report -c 'out/coverage/crypto_unittests'
-c 'out/coverage/url_unittests --gtest_filter=URLParser.PathURL'
-f url/ -f crypto/
```
For more options, please refer to the script.
## Reporting problems
For any breakage report and feature requests, please [file a bug].
[Coverage script]: https://cs.chromium.org/chromium/src/tools/code_coverage/coverage.py
[file a bug]: https://bugs.chromium.org/p/chromium/issues/entry?components=Tools%3ECodeCoverage