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. The coverage figures they calculate come from running some subset of the chromium testing suite.

Also,

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.