andybons | 3322f76 | 2015-08-24 21:37:09 | [diff] [blame^] | 1 | # Categories of coverage |
| 2 | |
| 3 | * <strong><font color='greeb'>executed</font></strong> - this line of code was hit during execution |
| 4 | * <strong><font color='orange'>instrumented</font></strong> - this line of code was part of the compilation unit, but not executed |
| 5 | * <strong><font color='red'>missing</font></strong> - in a source file, but not compiled. |
| 6 | * ignored - not an executable line, or a line we don't care about |
| 7 | |
| 8 | 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. |
| 9 | |
| 10 | # Buildbots |
| 11 | |
| 12 | 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. |
| 13 | |
| 14 | * [Linux](http://build.chromium.org/buildbot/waterfall.fyi/builders/Linux%20Coverage%20(dbg)) - uses `gcov` |
| 15 | * [Windows](http://build.chromium.org/buildbot/waterfall.fyi/builders/Win%20Coverage%20%28dbg%29) |
| 16 | * [Mac](http://build.chromium.org/buildbot/waterfall.fyi/builders/Mac%20Coverage%20%28dbg%29) |
| 17 | |
| 18 | Also, |
| 19 | * [Coverage dashboard](http://build.chromium.org/buildbot/coverage/) |
| 20 | * [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. |
| 21 | |
| 22 | # Calculating coverage locally |
| 23 | |
| 24 | TODO |
| 25 | |
| 26 | # Advanced Tips |
| 27 | |
| 28 | 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. |