aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-02 15:52:22 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-02 15:53:55 -0800
commita56a6adf7c5d2829ea99f393f1a2d2d3d4488e0f (patch)
tree2a7ec0955afd09a9fb1d39801b85dca6c2567bba /src/test/java
parent64d9a4d6dcd720a3b7a60ff550a17a7707dd41d0 (diff)
Stop allowing generic LateBoundDefault value types. Such types are always either a Label or a List<Label>. We can easily enforce this through static type checking, so do it.
This will help with LateBoundDefault serialization, since we don't have to serialize an arbitrary object. PiperOrigin-RevId: 184347100
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java33
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java10
6 files changed, 31 insertions, 28 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java
index 9b11f04fb9..d6d0a967be 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.packages.AdvertisedProviderSet;
import com.google.devtools.build.lib.packages.AspectDefinition;
import com.google.devtools.build.lib.packages.AspectParameters;
import com.google.devtools.build.lib.packages.Attribute;
+import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault;
import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy;
@@ -76,8 +77,8 @@ public class AspectDefinitionTest {
Attribute implicit = attr("$runtime", BuildType.LABEL)
.value(Label.parseAbsoluteUnchecked("//run:time"))
.build();
- LateBoundDefault<Void, Label> latebound =
- LateBoundDefault.fromConstant(Label.parseAbsoluteUnchecked("//run:away"));
+ LabelLateBoundDefault<Void> latebound =
+ LateBoundDefault.fromConstantForTesting(Label.parseAbsoluteUnchecked("//run:away"));
AspectDefinition simple = new AspectDefinition.Builder(TEST_ASPECT_CLASS)
.add(implicit)
.add(attr(":latebound", BuildType.LABEL).value(latebound))
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
index b4d91c341f..5673ebbeb3 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
@@ -27,10 +27,9 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.analysis.util.MockRule;
-import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Location;
-import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
+import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.Package;
@@ -236,8 +235,8 @@ public class CircularDependencyTest extends BuildViewTestCase {
/** A late bound dependency which depends on the 'dep' label if the 'define' is in --defines. */
// TODO(b/65746853): provide a way to do this without passing the entire configuration
- private static final LateBoundDefault<BuildConfiguration, Label> LATE_BOUND_DEP =
- LateBoundDefault.fromTargetConfiguration(
+ private static final LabelLateBoundDefault<BuildConfiguration> LATE_BOUND_DEP =
+ LabelLateBoundDefault.fromTargetConfiguration(
BuildConfiguration.class,
null,
(rule, attributes, config) ->
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java
index fe0bd77489..75e51e4aec 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java
@@ -65,7 +65,7 @@ public class ConfigurationsForLateBoundTargetsTest extends AnalysisTestCase {
.add(
attr(":latebound_attr", LABEL)
.value(
- Attribute.LateBoundDefault.fromConstant(
+ Attribute.LateBoundDefault.fromConstantForTesting(
Label.parseAbsoluteUnchecked("//foo:latebound_dep")))
.cfg(CHANGE_FOO_FLAG_TRANSITION))
.requiresConfigurationFragments(LateBoundSplitUtil.TestFragment.class);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
index 0be1b97e4e..c5bfa97a43 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
@@ -111,7 +111,7 @@ public class LateBoundSplitUtil {
.allowedRuleClasses(Attribute.ANY_RULE)
.cfg(SIMPLE_SPLIT)
.value(
- Attribute.LateBoundDefault.fromConstant(
+ Attribute.LateBoundDefault.fromConstantForTesting(
Label.parseAbsoluteUnchecked("//foo:latebound_dep"))))
.requiresConfigurationFragments(TestFragment.class);
});
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java
index 7f7049c152..ee090f9a4e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java
@@ -88,20 +88,25 @@ public class ConstraintsTest extends AbstractConstraintsTest {
.compatibleWith(env.getLabel("//buildenv/rule_class_compat:a"))
.restrictedTo(env.getLabel("//buildenv/rule_class_compat:b")));
- private static final MockRule RULE_WITH_IMPLICIT_AND_LATEBOUND_DEFAULTS = () -> MockRule.define(
- "rule_with_implicit_and_latebound_deps",
- (builder, env) ->
- builder
- .setUndocumented()
- .add(Attribute.attr("$implicit", BuildType.LABEL)
- .value(Label.parseAbsoluteUnchecked("//helpers:implicit")))
- .add(Attribute.attr(":latebound", BuildType.LABEL)
- .value(
- Attribute.LateBoundDefault.fromConstant(
- Label.parseAbsoluteUnchecked("//helpers:latebound"))))
- .add(Attribute.attr("normal", BuildType.LABEL)
- .allowedFileTypes(FileTypeSet.NO_FILE)
- .value(Label.parseAbsoluteUnchecked("//helpers:default"))));
+ private static final MockRule RULE_WITH_IMPLICIT_AND_LATEBOUND_DEFAULTS =
+ () ->
+ MockRule.define(
+ "rule_with_implicit_and_latebound_deps",
+ (builder, env) ->
+ builder
+ .setUndocumented()
+ .add(
+ Attribute.attr("$implicit", BuildType.LABEL)
+ .value(Label.parseAbsoluteUnchecked("//helpers:implicit")))
+ .add(
+ Attribute.attr(":latebound", BuildType.LABEL)
+ .value(
+ Attribute.LateBoundDefault.fromConstantForTesting(
+ Label.parseAbsoluteUnchecked("//helpers:latebound"))))
+ .add(
+ Attribute.attr("normal", BuildType.LABEL)
+ .allowedFileTypes(FileTypeSet.NO_FILE)
+ .value(Label.parseAbsoluteUnchecked("//helpers:default"))));
private static final MockRule RULE_WITH_ENFORCED_IMPLICIT_ATTRIBUTE = () -> MockRule.define(
"rule_with_enforced_implicit_deps",
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 ac8872f4c4..353f62f4a4 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
@@ -43,7 +43,7 @@ import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.AspectDefinition;
import com.google.devtools.build.lib.packages.AspectParameters;
-import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
+import com.google.devtools.build.lib.packages.Attribute.LabelListLateBoundDefault;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.NativeAspectClass;
import com.google.devtools.build.lib.packages.Rule;
@@ -731,11 +731,9 @@ public class TestAspects {
attr("$dep", LABEL).value(Label.parseAbsoluteUnchecked("//extra:extra")));
// TODO(b/65746853): provide a way to do this without passing the entire configuration
- private static final LateBoundDefault<?, List<Label>> PLUGINS_LABEL_LIST =
- LateBoundDefault.fromTargetConfiguration(
- JavaConfiguration.class,
- ImmutableList.of(),
- (rule, attributes, javaConfig) -> javaConfig.getPlugins());
+ private static final LabelListLateBoundDefault<?> PLUGINS_LABEL_LIST =
+ LabelListLateBoundDefault.fromTargetConfiguration(
+ JavaConfiguration.class, (rule, attributes, javaConfig) -> javaConfig.getPlugins());
public static final MockRule LATE_BOUND_DEP_RULE = () ->
MockRule.ancestor(BASE_RULE.getClass()).factory(DummyRuleFactory.class).define(