blob: 484cecc0e2cda19f85f44aaaf0ded16b273f9db6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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.
|