diff options
author | 2015-11-19 21:13:34 +0000 | |
---|---|---|
committer | 2015-11-20 09:18:43 +0000 | |
commit | 28bc5f1538fa5d89b411560ca394732920e06227 (patch) | |
tree | d12a2031503e8b50ecd5c988c1f537335793c01c /src | |
parent | 214f6277779c2c6e203b6b955641227003eba54a (diff) |
--
MOS_MIGRATED_REVID=108278075
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java | 13 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java | 18 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java index 6bf19d3672..5e3269cab4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.rules.extra; +import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.base.Predicates; import com.google.common.collect.Collections2; @@ -62,6 +63,18 @@ public final class ExtraAction extends SpawnAction { @GuardedBy("this") private boolean inputsKnown; + /** + * A long way to say (ExtraAction xa) -> xa.getShadowedAction(). + */ + public static final Function<ExtraAction, Action> GET_SHADOWED_ACTION = + new Function<ExtraAction, Action>() { + @Nullable + @Override + public Action apply(@Nullable ExtraAction extraAction) { + return extraAction != null ? extraAction.getShadowedAction() : null; + } + }; + public ExtraAction( ImmutableSet<Artifact> extraActionInputs, Map<PathFragment, Artifact> runfilesManifests, diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java index 35de514551..c408d504a0 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java @@ -51,6 +51,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredAttributeMapper; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.ExtraActionArtifactsProvider; +import com.google.devtools.build.lib.analysis.ExtraActionArtifactsProvider.ExtraArtifactSet; import com.google.devtools.build.lib.analysis.FileConfiguredTarget; import com.google.devtools.build.lib.analysis.FileProvider; import com.google.devtools.build.lib.analysis.FilesToRunProvider; @@ -1190,6 +1191,23 @@ public abstract class BuildViewTestCase extends FoundationTestCase { return ImmutableList.copyOf(result); } + /** + * Returns all extra actions for that target (including transitive actions). + */ + protected ImmutableList<ExtraAction> getTransitiveExtraActionActions(ConfiguredTarget target) { + ImmutableList.Builder<ExtraAction> result = new ImmutableList.Builder<>(); + for (ExtraArtifactSet set : target.getProvider(ExtraActionArtifactsProvider.class) + .getTransitiveExtraActionArtifacts()) { + for (Artifact artifact : set.getArtifacts()) { + Action action = getGeneratingAction(artifact); + if (action instanceof ExtraAction) { + result.add((ExtraAction) action); + } + } + } + return result.build(); + } + protected ImmutableList<Action> getFilesToBuildActions(ConfiguredTarget target) { List<Action> result = new ArrayList<>(); for (Artifact artifact : getFilesToBuild(target)) { |