Repository navigation
Commit f38e293
Filter coverage output to just the files in the source file manifest
Coverage output should be filtered to just the sources listed in the manifest because those are the sources of targets matched by --instrumentation_filter (excluding test targets unless --instrument_test_targets). Coverage output should be restricted to those files according to the documentation for those flags.
This is a particular concern for C++ because C++ source files can include header files. That is, header files are source files of the target which directly includes them, but unlike most source files, code in header files may also be compiled by that target's consumers. Thus, CppCompile actions enable coverage instrumentation if either the target or any of the target's direct dependencies are matched by --instrumentation_filter. The resulting coverage output needs to be filtered to just the specific targets that are matched.
However, C++ is not the only language which has that property. It's also possible for coverage implementations to generate overly-broad coverage data for other reasons, or as an oversight. In those cases, the semantics of --instrumentation_filter should still be enforced.
This adds "jars" and "runtime_jars" to dependency attributes in the InstrumentationSpec for Java rules in order to preserve behavior for some of the tests. That test case doesn't seem like a usual way of structuring that dependency, if you have the source files checked in (as opposed to just the jarfile), it makes more sense to use the java_library target instead of using the jarfile output. But "jars" and "resource_jars" are in fact runtime dependencies, so listing them is at least technically correct.
RELNOTES: Filter all (instead of just C++) source files for coverage output according to --instrumentation_filter and --instrument_test_targets.
PiperOrigin-RevId: 3447978281 parent fc2f2cf commit f38e293
6 files changed
Lines changed: 20 additions & 49 deletions
File tree
- src/main/java/com/google/devtools/build/lib/rules/java
- tools/test
- CoverageOutputGenerator
- javatests/com/google/devtools/coverageoutputgenerator
- java/com/google/devtools/coverageoutputgenerator
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/Constants.java
Lines changed: 0 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
19 | 17 | | |
20 | 18 | | |
21 | 19 | | |
| |||
51 | 49 | | |
52 | 50 | | |
53 | 51 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | 52 | | |
Lines changed: 2 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
75 | 74 | | |
76 | 75 | | |
77 | 76 | | |
78 | | - | |
| 77 | + | |
79 | 78 | | |
80 | 79 | | |
81 | 80 | | |
| |||
87 | 86 | | |
88 | 87 | | |
89 | 88 | | |
90 | | - | |
91 | | - | |
| 89 | + | |
92 | 90 | | |
93 | 91 | | |
94 | 92 | | |
95 | 93 | | |
96 | 94 | | |
97 | 95 | | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | 96 | | |
108 | 97 | | |
109 | 98 | | |
| |||
Lines changed: 7 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | 39 | | |
41 | 40 | | |
42 | 41 | | |
| |||
75 | 74 | | |
76 | 75 | | |
77 | 76 | | |
78 | | - | |
| 77 | + | |
79 | 78 | | |
80 | 79 | | |
81 | 80 | | |
| |||
150 | 149 | | |
151 | 150 | | |
152 | 151 | | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
159 | 155 | | |
160 | 156 | | |
161 | 157 | | |
| |||
198 | 194 | | |
199 | 195 | | |
200 | 196 | | |
201 | | - | |
| 197 | + | |
202 | 198 | | |
203 | 199 | | |
204 | 200 | | |
205 | 201 | | |
206 | 202 | | |
207 | | - | |
| 203 | + | |
208 | 204 | | |
209 | 205 | | |
210 | 206 | | |
| |||
218 | 214 | | |
219 | 215 | | |
220 | 216 | | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | 217 | | |
231 | 218 | | |
232 | 219 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
| 194 | + | |
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
| 200 | + | |
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
205 | | - | |
| 205 | + | |
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
216 | | - | |
| 216 | + | |
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
203 | | - | |
204 | | - | |
205 | | - | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
206 | 207 | | |
207 | 208 | | |
208 | 209 | | |
| |||
231 | 232 | | |
232 | 233 | | |
233 | 234 | | |
234 | | - | |
| 235 | + | |
0 commit comments