summaryrefslogtreecommitdiff
path: root/chromium/docs/code_coverage.md
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/docs/code_coverage.md')
-rw-r--r--chromium/docs/code_coverage.md41
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.