diff options
Diffstat (limited to 'chromium/docs/code_coverage.md')
-rw-r--r-- | chromium/docs/code_coverage.md | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/chromium/docs/code_coverage.md b/chromium/docs/code_coverage.md new file mode 100644 index 00000000000..484cecc0e2c --- /dev/null +++ b/chromium/docs/code_coverage.md @@ -0,0 +1,41 @@ +# Code Coverage + +## Categories of coverage + +* executed - this line of code was hit during execution +* instrumented - this line of code was part of the compilation unit, but not + executed +* missing - in a source file, but not compiled. +* ignored - not an executable line, or a line we don't care about + +Coverage is calculated as `exe / (inst + miss)`. In general, lines that are in +`miss` should be ignored, but our exclusion rules are not good enough. + +## Buildbots + +Buildbots are currently on the +[experimental waterfall](http://build.chromium.org/buildbot/waterfall.fyi/waterfall). +The coverage figures they calculate come from running some subset of the +chromium testing suite. + +* [Linux](http://build.chromium.org/buildbot/waterfall.fyi/builders/Linux%20Coverage%20(dbg)) + - uses `gcov` +* [Windows](http://build.chromium.org/buildbot/waterfall.fyi/builders/Win%20Coverage%20%28dbg%29) +* [Mac](http://build.chromium.org/buildbot/waterfall.fyi/builders/Mac%20Coverage%20%28dbg%29) + +Also, + +* [Coverage dashboard](http://build.chromium.org/buildbot/coverage/) +* [Example coverage summary](http://build.chromium.org/buildbot/coverage/linux-debug/49936/) + - the coverage is calculated at directory and file level, and the directory + structure is navigable via the **Subdirectories** table. + +## Calculating coverage locally + +TODO + +## Advanced Tips + +Sometimes a line of code should never be reached (e.g., `NOTREACHED()`). These +can be marked in the source with `// COV_NF_LINE`. Note that this syntax is +exact. |