aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-02-11 00:18:07 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-02-11 00:18:07 +0000
commitcdc90e9279fdd127720cb0bf8548ce3e1b4f6042 (patch)
treea6796726dbe7c59a36ed38f548c2824adeed03ef /src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
parenta242f210e6584a4fbe2b29e2ca42e94dbb843552 (diff)
As a follow up to []. This changelist creates an intermediary FileWriteAction to store the list of lcov files in a file before calling the code coverage report binary.
Cleanup on the COVERAGE_REPORT to support multiple actions. RELNOTES: HTML code coverage report fix for large targets. -- MOS_MIGRATED_REVID=86033675
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
index 8d6fe3d684..19802e3a01 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
@@ -15,7 +15,10 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Action;
+import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -32,14 +35,20 @@ public class CoverageReportFunction implements SkyFunction {
CoverageReportValue.SKY_KEY.equals(skyKey), String.format(
"Expected %s for SkyKey but got %s instead", CoverageReportValue.SKY_KEY, skyKey));
- Action action = PrecomputedValue.COVERAGE_REPORT_KEY.get(env);
- if (action == null) {
+ ImmutableList <Action> actions = PrecomputedValue.COVERAGE_REPORT_KEY.get(env);
+ if (actions == null) {
return null;
}
+ ImmutableSet.Builder<Artifact> outputs = new ImmutableSet.Builder<>();
+
+ for (Action action : actions) {
+ outputs.addAll(action.getOutputs());
+ }
+
return new CoverageReportValue(
- action.getOutputs(),
- action);
+ outputs.build(),
+ actions);
}
@Override