diff options
author | Irina Iancu <elenairina@google.com> | 2018-07-23 06:59:14 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-23 07:00:23 -0700 |
commit | 8fcc07aebb677566de6c53b5ab57f124a840cf60 (patch) | |
tree | 2aac5d9cbe6462c73fd8ce0b7d3b3eabb17b1e39 /src/main/java/com/google/devtools/build | |
parent | 6bc22d571b17853a7e6c2c4b6776a1c833c63ce3 (diff) |
Collect code coverage for binaries invoked via sh_test.
Fixes #5331.
Change-Id: Idb01a3f206ed37992f200f7e0e51ed9831262613
RELNOTES: Code coverage is collected for Java binaries invoked from sh_test.
PiperOrigin-RevId: 205654442
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java | 6 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java index d46cf2882a..20d8ce9c90 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java @@ -35,6 +35,12 @@ public final class BazelShTestRule implements RuleDefinition { if (launcher != null) { builder.add(attr("$launcher", LABEL).cfg(HostTransition.INSTANCE).value(launcher)); } + // TODO(bazel-team): Add $lcov_merger to every test rule as opposed to particular rules. + builder.add( + attr("$lcov_merger", LABEL) + .value( + Label.parseAbsoluteUnchecked( + "@bazel_tools//tools/test/LcovMerger/java/com/google/devtools/lcovmerger:Main"))); return builder.build(); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java index 72545267cf..d787073208 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java @@ -31,8 +31,12 @@ import com.google.devtools.build.lib.analysis.actions.Substitution; import com.google.devtools.build.lib.analysis.actions.Template; import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction; import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode; +import com.google.devtools.build.lib.analysis.test.InstrumentedFilesCollector; +import com.google.devtools.build.lib.analysis.test.InstrumentedFilesCollector.InstrumentationSpec; +import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; +import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.OS; import com.google.devtools.build.lib.vfs.PathFragment; @@ -93,6 +97,13 @@ public class ShBinary implements RuleConfiguredTargetFactory { .setFilesToBuild(filesToBuild) .setRunfilesSupport(runfilesSupport, mainExecutable) .addProvider(RunfilesProvider.class, RunfilesProvider.simple(runfiles)) + .addProvider( + InstrumentedFilesProvider.class, + InstrumentedFilesCollector.collect( + ruleContext, + new InstrumentationSpec(FileTypeSet.NO_FILE), + InstrumentedFilesCollector.NO_METADATA_COLLECTOR, + filesToBuild)) .build(); } |