aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/docgen/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/docgen/testutil/TestData.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/BUILD2
-rw-r--r--src/test/java/com/google/devtools/build/lib/actions/BasicActionLookupValueTest.java (renamed from src/test/java/com/google/devtools/build/lib/actions/ActionLookupValueTest.java)10
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/select/AggregatingAttributeMapperTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/MockRuleDefaults.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java10
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java8
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java19
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagSetterRule.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkActionProviderTest.java107
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/testutil/UnknownRuleConfiguredTarget.java4
22 files changed, 167 insertions, 32 deletions
diff --git a/src/test/java/com/google/devtools/build/docgen/BUILD b/src/test/java/com/google/devtools/build/docgen/BUILD
index 4f302cc3d0..2d3ffdf44f 100644
--- a/src/test/java/com/google/devtools/build/docgen/BUILD
+++ b/src/test/java/com/google/devtools/build/docgen/BUILD
@@ -64,6 +64,7 @@ java_library(
deps = [
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:packages-internal",
+ "//src/main/java/com/google/devtools/build/lib/actions",
],
)
diff --git a/src/test/java/com/google/devtools/build/docgen/testutil/TestData.java b/src/test/java/com/google/devtools/build/docgen/testutil/TestData.java
index a8f136a765..b3bf347612 100644
--- a/src/test/java/com/google/devtools/build/docgen/testutil/TestData.java
+++ b/src/test/java/com/google/devtools/build/docgen/testutil/TestData.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.docgen.testutil;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -70,7 +71,8 @@ public class TestData {
public static class DummyRuleFactory implements RuleConfiguredTargetFactory {
@Override
- public ConfiguredTarget create(RuleContext ruleContext) {
+ public ConfiguredTarget create(RuleContext ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
throw new IllegalStateException();
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index 99d4335954..462d3f23e7 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -724,6 +724,7 @@ java_test(
"//src/main/java/com/google/devtools/build/lib:bazel-rules",
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:packages",
+ "//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/vfs",
],
)
@@ -860,6 +861,7 @@ java_test(
"//src/main/java/com/google/devtools/build/lib:packages",
"//src/main/java/com/google/devtools/build/lib:skylarkinterface",
"//src/main/java/com/google/devtools/build/lib:util",
+ "//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
"//src/main/java/com/google/devtools/build/lib/vfs",
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ActionLookupValueTest.java b/src/test/java/com/google/devtools/build/lib/actions/BasicActionLookupValueTest.java
index f6c5961941..a356cb5a53 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ActionLookupValueTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/BasicActionLookupValueTest.java
@@ -30,9 +30,9 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-/** Basic tests for {@link ActionLookupValue}. */
+/** Basic tests for {@link BasicActionLookupValue}. */
@RunWith(JUnit4.class)
-public class ActionLookupValueTest {
+public class BasicActionLookupValueTest {
private FileSystem fs;
private final ActionKeyContext actionKeyContext = new ActionKeyContext();
@@ -48,7 +48,7 @@ public class ActionLookupValueTest {
Artifact artifact = mock(Artifact.class);
when(action.getOutputs()).thenReturn(ImmutableSet.of(artifact));
when(action.canRemoveAfterExecution()).thenReturn(true);
- ActionLookupValue underTest = new ActionLookupValue(action, false);
+ ActionLookupValue underTest = new BasicActionLookupValue(action, false);
assertThat(underTest.getGeneratingActionIndex(artifact)).isEqualTo(0);
assertThat(underTest.getAction(0)).isSameAs(action);
underTest.actionEvaluated(0, action);
@@ -69,7 +69,7 @@ public class ActionLookupValueTest {
when(persistentAction.getOutputs()).thenReturn(ImmutableSet.of(persistentOutput));
when(persistentAction.canRemoveAfterExecution()).thenReturn(false);
ActionLookupValue underTest =
- new ActionLookupValue(
+ new BasicActionLookupValue(
Actions.filterSharedActionsAndThrowActionConflict(
actionKeyContext, ImmutableList.of(normalAction, persistentAction)),
true);
@@ -81,7 +81,7 @@ public class ActionLookupValueTest {
try {
underTest.getAction(0);
fail();
- } catch (NullPointerException e) {
+ } catch (IllegalStateException e) {
// Expected.
}
assertThat(underTest.getGeneratingActionIndex(persistentOutput)).isEqualTo(1);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/select/AggregatingAttributeMapperTest.java b/src/test/java/com/google/devtools/build/lib/analysis/select/AggregatingAttributeMapperTest.java
index 2eda4e0862..a8f912602c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/select/AggregatingAttributeMapperTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/select/AggregatingAttributeMapperTest.java
@@ -21,6 +21,7 @@ import com.google.common.base.Joiner;
import com.google.common.base.Verify;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -272,7 +273,8 @@ public class AggregatingAttributeMapperTest extends AbstractAttributeMapperTest
}
@Override
- public ConfiguredTarget create(RuleContext ruleContext) throws InterruptedException {
+ public ConfiguredTarget create(RuleContext ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
throw new UnsupportedOperationException();
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/MockRuleDefaults.java b/src/test/java/com/google/devtools/build/lib/analysis/util/MockRuleDefaults.java
index 1bba9b1284..98f652cbca 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/MockRuleDefaults.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/MockRuleDefaults.java
@@ -22,6 +22,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_LIST;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
@@ -78,7 +79,8 @@ public class MockRuleDefaults {
* */
public static class DefaultConfiguredTargetFactory implements RuleConfiguredTargetFactory {
@Override
- public ConfiguredTarget create(RuleContext ruleContext) throws InterruptedException {
+ public ConfiguredTarget create(RuleContext ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
NestedSet<Artifact> filesToBuild =
NestedSetBuilder.wrap(Order.STABLE_ORDER, ruleContext.getOutputArtifacts());
for (Artifact artifact : ruleContext.getOutputArtifacts()) {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java
index dcea00a3ac..1f27af4414 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java
@@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.ConfiguredAspect;
import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -150,7 +151,8 @@ public class TestAspects {
*/
public static class DummyRuleFactory implements RuleConfiguredTargetFactory {
@Override
- public ConfiguredTarget create(RuleContext ruleContext) throws InterruptedException {
+ public ConfiguredTarget create(RuleContext ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
RuleConfiguredTargetBuilder builder =
new RuleConfiguredTargetBuilder(ruleContext)
@@ -173,7 +175,8 @@ public class TestAspects {
*/
public static class DummyRuleFactory2 implements RuleConfiguredTargetFactory {
@Override
- public ConfiguredTarget create(RuleContext ruleContext) throws InterruptedException {
+ public ConfiguredTarget create(RuleContext ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
return new RuleConfiguredTargetBuilder(ruleContext)
.addProvider(
new RuleInfo(collectAspectData("rule " + ruleContext.getLabel(), ruleContext)))
@@ -192,7 +195,8 @@ public class TestAspects {
*/
public static class MultiAspectRuleFactory implements RuleConfiguredTargetFactory {
@Override
- public ConfiguredTarget create(RuleContext ruleContext) throws InterruptedException {
+ public ConfiguredTarget create(RuleContext ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
TransitiveInfoCollection fooAttribute = ruleContext.getPrerequisite("foo", Mode.DONT_CHECK);
TransitiveInfoCollection barAttribute = ruleContext.getPrerequisite("bar", Mode.DONT_CHECK);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD
index 042b4bb8c1..97cb185f43 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/BUILD
@@ -20,6 +20,7 @@ java_test(
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:packages-internal",
"//src/main/java/com/google/devtools/build/lib:util",
+ "//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/analysis/whitelisting",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java
index 94563f699d..6e4ce84399 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.analysis.whitelisting;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
@@ -39,7 +40,7 @@ public final class WhitelistDummyRule {
public static class RuleFactory implements RuleConfiguredTargetFactory {
@Override
public ConfiguredTarget create(RuleContext ruleContext)
- throws InterruptedException, RuleErrorException {
+ throws InterruptedException, RuleErrorException, ActionConflictException {
if (!Whitelist.isAvailable(ruleContext, "dummy")) {
ruleContext.ruleError("Dummy is not available.");
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java
index b25436d77c..cbfdbfb18f 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassBuilderTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.fail;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassNamePredicate;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
@@ -36,11 +37,12 @@ import org.junit.runners.JUnit4;
*/
@RunWith(JUnit4.class)
public class RuleClassBuilderTest extends PackageLoadingTestCase {
- private static final RuleClass.ConfiguredTargetFactory<Object, Object>
+ private static final RuleClass.ConfiguredTargetFactory<Object, Object, Exception>
DUMMY_CONFIGURED_TARGET_FACTORY =
- new RuleClass.ConfiguredTargetFactory<Object, Object>() {
+ new RuleClass.ConfiguredTargetFactory<Object, Object, Exception>() {
@Override
- public Object create(Object ruleContext) throws InterruptedException {
+ public Object create(Object ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
throw new IllegalStateException();
}
};
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
index 95c243d410..cf324c182e 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
@@ -35,6 +35,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
@@ -76,13 +77,15 @@ import org.junit.runners.JUnit4;
*/
@RunWith(JUnit4.class)
public class RuleClassTest extends PackageLoadingTestCase {
- private static final RuleClass.ConfiguredTargetFactory<Object, Object>
- DUMMY_CONFIGURED_TARGET_FACTORY = new RuleClass.ConfiguredTargetFactory<Object, Object>() {
- @Override
- public Object create(Object ruleContext) throws InterruptedException {
- throw new IllegalStateException();
- }
- };
+ private static final RuleClass.ConfiguredTargetFactory<Object, Object, Exception>
+ DUMMY_CONFIGURED_TARGET_FACTORY =
+ new RuleClass.ConfiguredTargetFactory<Object, Object, Exception>() {
+ @Override
+ public Object create(Object ruleContext)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
+ throw new IllegalStateException();
+ }
+ };
private static final class DummyFragment extends BuildConfiguration.Fragment {
@@ -845,7 +848,7 @@ public class RuleClassTest extends PackageLoadingTestCase {
boolean outputsDefaultExecutable,
ImplicitOutputsFunction implicitOutputsFunction,
RuleTransitionFactory transitionFactory,
- ConfiguredTargetFactory<?, ?> configuredTargetFactory,
+ ConfiguredTargetFactory<?, ?, ?> configuredTargetFactory,
PredicateWithMessage<Rule> validityPredicate,
Predicate<String> preferredDependencyPredicate,
AdvertisedProviderSet advertisedProviders,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagSetterRule.java b/src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagSetterRule.java
index e4266d55c9..4b466ae714 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagSetterRule.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/config/FeatureFlagSetterRule.java
@@ -22,6 +22,7 @@ import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
@@ -75,7 +76,7 @@ public final class FeatureFlagSetterRule implements RuleDefinition, RuleConfigur
@Override
public ConfiguredTarget create(RuleContext ruleContext)
- throws InterruptedException, RuleErrorException {
+ throws InterruptedException, RuleErrorException, ActionConflictException {
TransitiveInfoCollection exportedFlag =
ruleContext.getPrerequisite("exports_flag", Mode.TARGET);
ConfigFeatureFlagProvider exportedFlagProvider =
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
index ba1a3c2e3b..9703fb466f 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
@@ -219,7 +219,7 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas
private static ConfiguredTargetValue createConfiguredTargetValue(
ActionTemplate<?> actionTemplate) {
- return new ConfiguredTargetValue(
+ return new NonRuleConfiguredTargetValue(
Mockito.mock(ConfiguredTarget.class),
Actions.GeneratingActions.fromSingleAction(actionTemplate),
NestedSetBuilder.<Package>stableOrder().build(),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
index 8a4f3af2e1..2fa5749af0 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
import com.google.devtools.build.lib.actions.Artifact.SpecialArtifactType;
import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
import com.google.devtools.build.lib.actions.ArtifactRoot;
+import com.google.devtools.build.lib.actions.BasicActionLookupValue;
import com.google.devtools.build.lib.actions.MissingInputFileException;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
@@ -324,7 +325,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase {
differencer.inject(
ImmutableMap.of(
ALL_OWNER,
- new ActionLookupValue(
+ new BasicActionLookupValue(
Actions.filterSharedActionsAndThrowActionConflict(
actionKeyContext, ImmutableList.copyOf(actions)),
false)));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
index 40c74d0bab..33485277c7 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
@@ -41,6 +41,7 @@ import com.google.devtools.build.lib.actions.ActionResult;
import com.google.devtools.build.lib.actions.Actions;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactRoot;
+import com.google.devtools.build.lib.actions.BasicActionLookupValue;
import com.google.devtools.build.lib.actions.BuildFailedException;
import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
@@ -242,7 +243,7 @@ public abstract class TimestampBuilderTestCase extends FoundationTestCase {
differencer.inject(
ImmutableMap.of(
ACTION_LOOKUP_KEY,
- new ActionLookupValue(
+ new BasicActionLookupValue(
Actions.filterSharedActionsAndThrowActionConflict(
actionKeyContext, ImmutableList.copyOf(actions)),
false)));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
index 702929be47..ae3562635a 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
@@ -46,7 +46,7 @@ public class ToolchainResolutionFunctionTest extends ToolchainTestCase {
private static ConfiguredTargetValue createConfiguredTargetValue(
ConfiguredTarget configuredTarget) {
- return new ConfiguredTargetValue(
+ return new NonRuleConfiguredTargetValue(
configuredTarget,
GeneratingActions.EMPTY,
NestedSetBuilder.emptySet(Order.STABLE_ORDER),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
index 7a804e44d2..47ca57b142 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
@@ -33,6 +33,7 @@ import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
import com.google.devtools.build.lib.actions.Artifact.SpecialArtifactType;
import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
import com.google.devtools.build.lib.actions.ArtifactRoot;
+import com.google.devtools.build.lib.actions.BasicActionLookupValue;
import com.google.devtools.build.lib.actions.MissingInputFileException;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.actions.cache.DigestUtils;
@@ -228,7 +229,7 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase {
differencer.inject(
ImmutableMap.of(
ALL_OWNER,
- new ActionLookupValue(
+ new BasicActionLookupValue(
Actions.filterSharedActionsAndThrowActionConflict(
actionKeyContext, ImmutableList.copyOf(actions)),
false)));
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkActionProviderTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkActionProviderTest.java
new file mode 100644
index 0000000000..0adabd111f
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkActionProviderTest.java
@@ -0,0 +1,107 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.skylark;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
+import com.google.devtools.build.lib.analysis.BuildView.AnalysisResult;
+import com.google.devtools.build.lib.analysis.ConfiguredAspect;
+import com.google.devtools.build.lib.analysis.util.AnalysisTestCase;
+import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.packages.SkylarkProvider.SkylarkKey;
+import com.google.devtools.build.lib.syntax.SkylarkList;
+import java.util.stream.Collectors;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Tests for the Skylark-accessible actions provider on rule configured targets. */
+@RunWith(JUnit4.class)
+public class SkylarkActionProviderTest extends AnalysisTestCase {
+
+ @Test
+ public void aspectGetsActionProviderForNativeRule() throws Exception {
+ scratch.file(
+ "test/aspect.bzl",
+ "foo = provider()",
+ "def _impl(target, ctx):",
+ " return [foo(actions = target.actions)]",
+ "MyAspect = aspect(implementation=_impl)");
+ scratch.file(
+ "test/BUILD",
+ "genrule(",
+ " name = 'xxx',",
+ " cmd = 'echo \"hello\" > $@',",
+ " outs = ['mygen.out']",
+ ")");
+
+ AnalysisResult analysisResult =
+ update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
+
+ ConfiguredAspect configuredAspect =
+ Iterables.getOnlyElement(analysisResult.getAspects()).getConfiguredAspect();
+
+ SkylarkKey fooKey = new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo");
+
+ assertThat(configuredAspect.get(fooKey).getValue("actions")).isNotNull();
+ @SuppressWarnings("unchecked")
+ SkylarkList<ActionAnalysisMetadata> actions =
+ (SkylarkList<ActionAnalysisMetadata>) configuredAspect.get(fooKey).getValue("actions");
+ assertThat(actions).isNotEmpty();
+
+ ActionAnalysisMetadata action = actions.get(0);
+ assertThat(action.getMnemonic()).isEqualTo("Genrule");
+ }
+
+ @Test
+ public void aspectGetsActionProviderForSkylarkRule() throws Exception {
+ scratch.file(
+ "test/aspect.bzl",
+ "foo = provider()",
+ "def _impl(target, ctx):",
+ " return [foo(actions = target.actions)]",
+ "MyAspect = aspect(implementation=_impl)");
+ scratch.file(
+ "test/rule.bzl",
+ "def impl(ctx):",
+ " output_file0 = ctx.new_file('myfile0')",
+ " output_file1 = ctx.new_file('myfile1')",
+ " ctx.action(outputs=[output_file0], command='fakecmd0', mnemonic='MyAction0')",
+ " ctx.action(outputs=[output_file1], command='fakecmd1', mnemonic='MyAction1')",
+ " return None",
+ "my_rule = rule(impl)");
+ scratch.file(
+ "test/BUILD", "load('//test:rule.bzl', 'my_rule')", "my_rule(", " name = 'xxx',", ")");
+
+ AnalysisResult analysisResult =
+ update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:xxx");
+
+ ConfiguredAspect configuredAspect =
+ Iterables.getOnlyElement(analysisResult.getAspects()).getConfiguredAspect();
+
+ SkylarkKey fooKey = new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo");
+
+ assertThat(configuredAspect.get(fooKey).getValue("actions")).isNotNull();
+ @SuppressWarnings("unchecked")
+ SkylarkList<ActionAnalysisMetadata> actions =
+ (SkylarkList<ActionAnalysisMetadata>) configuredAspect.get(fooKey).getValue("actions");
+ assertThat(actions).hasSize(2);
+
+ assertThat(actions.stream().map(action -> action.getMnemonic()).collect(Collectors.toList()))
+ .containsExactly("MyAction0", "MyAction1");
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
index d4ad66d66b..10acb873db 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
@@ -358,6 +358,7 @@ public class SkylarkDefinedAspectsTest extends AnalysisTestCase {
Info names = target.get(providerKey);
assertThat((Iterable<?>) names.getValue("dir"))
.containsExactly(
+ "actions",
"aspect_provider",
"data_runfiles",
"default_runfiles",
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 83d7e930bc..9ad90deb6a 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -433,7 +433,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase {
"unexpected keyword 'providers' in call to string", "attr.string(providers = ['a'])");
}
- private static final RuleClass.ConfiguredTargetFactory<Object, Object>
+ private static final RuleClass.ConfiguredTargetFactory<Object, Object, Exception>
DUMMY_CONFIGURED_TARGET_FACTORY =
ruleContext -> {
throw new IllegalStateException();
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java b/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java
index 72e8eb9e73..c9c50832c5 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestRuleClassProvider.java
@@ -22,6 +22,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_LIST;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -113,7 +114,7 @@ public class TestRuleClassProvider {
@Override
public ConfiguredTarget create(RuleContext ruleContext)
- throws InterruptedException, RuleErrorException {
+ throws InterruptedException, RuleErrorException, ActionConflictException {
Map<String, String> variables = ruleContext.attributes().get("variables", Type.STRING_DICT);
return new RuleConfiguredTargetBuilder(ruleContext)
.setFilesToBuild(NestedSetBuilder.emptySet(Order.STABLE_ORDER))
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/UnknownRuleConfiguredTarget.java b/src/test/java/com/google/devtools/build/lib/testutil/UnknownRuleConfiguredTarget.java
index ce38e2ddcd..f0cfb9542e 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/UnknownRuleConfiguredTarget.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/UnknownRuleConfiguredTarget.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.testutil;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.FailAction;
+import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
@@ -34,7 +35,8 @@ import com.google.devtools.build.lib.packages.Rule;
public class UnknownRuleConfiguredTarget implements RuleConfiguredTargetFactory {
@Override
- public ConfiguredTarget create(RuleContext context) {
+ public ConfiguredTarget create(RuleContext context)
+ throws InterruptedException, RuleErrorException, ActionConflictException {
// TODO(bazel-team): (2009) why isn't this an error? It would stop the build more promptly...
context.ruleWarning("cannot build " + context.getRule().getRuleClass() + " rules");