aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-12-20 17:24:46 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-20 17:26:58 -0800
commit614dc50056348f5cb8eff626c30b4fdf573f2253 (patch)
treeeeafa4325ddd8d15ce84abecdac9fa090ce4f9b7 /src/test
parentdeb9c882fb6ecab1c27f28e5e145926d18e2a3d5 (diff)
Remove ConfigurationTransition.HOST references from lib.packages.
This removes the main barrier to making host transitions routine patch transitions. Today you signify a host transition by calling Attribute.Builder.cfg(ConfigurationTransition.HOST). Blaze's configuration machinery auto-converts this to HostTransition.INSTANCE, which is a patch transition. This change provides the groundwork for removing ConfigurationTransition.HOST and removing the special conversion logic. This also paves the way for better API support for multiple host configurations. Also change some cfg(HOST) rule references to cfg(HostTransition.INSTANCE). PiperOrigin-RevId: 179754619
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java34
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java30
2 files changed, 42 insertions, 22 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 5738cb1923..5127120ab0 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
@@ -19,6 +19,8 @@ import static org.junit.Assert.fail;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.ConfigAwareAspectBuilder;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.AdvertisedProviderSet;
import com.google.devtools.build.lib.packages.AspectDefinition;
@@ -254,16 +256,21 @@ public class AspectDefinitionTest {
.containsExactly(Integer.class, String.class);
}
+ private static class FooFragment extends BuildConfiguration.Fragment {}
+ private static class BarFragment extends BuildConfiguration.Fragment {}
+
@Test
public void testRequiresHostConfigurationFragments_PropagatedToConfigurationFragmentPolicy()
throws Exception {
- AspectDefinition requiresFragments = new AspectDefinition.Builder(TEST_ASPECT_CLASS)
- .requiresHostConfigurationFragments(Integer.class, String.class)
- .build();
+ AspectDefinition requiresFragments =
+ ConfigAwareAspectBuilder.of(new AspectDefinition.Builder(TEST_ASPECT_CLASS))
+ .requiresHostConfigurationFragments(FooFragment.class, BarFragment.class)
+ .originalBuilder()
+ .build();
assertThat(requiresFragments.getConfigurationFragmentPolicy()).isNotNull();
assertThat(
requiresFragments.getConfigurationFragmentPolicy().getRequiredConfigurationFragments())
- .containsExactly(Integer.class, String.class);
+ .containsExactly(FooFragment.class, BarFragment.class);
}
@Test
@@ -282,9 +289,12 @@ public class AspectDefinitionTest {
@Test
public void testRequiresHostConfigurationFragmentNames_PropagatedToConfigurationFragmentPolicy()
throws Exception {
- AspectDefinition requiresFragments = new AspectDefinition.Builder(TEST_ASPECT_CLASS)
- .requiresHostConfigurationFragmentsBySkylarkModuleName(ImmutableList.of("test_fragment"))
- .build();
+ AspectDefinition requiresFragments =
+ ConfigAwareAspectBuilder.of(new AspectDefinition.Builder(TEST_ASPECT_CLASS))
+ .requiresHostConfigurationFragmentsBySkylarkModuleName(
+ ImmutableList.of("test_fragment"))
+ .originalBuilder()
+ .build();
assertThat(requiresFragments.getConfigurationFragmentPolicy()).isNotNull();
assertThat(
requiresFragments.getConfigurationFragmentPolicy()
@@ -294,10 +304,12 @@ public class AspectDefinitionTest {
@Test
public void testEmptySkylarkConfigurationFragmentPolicySetup_HasNonNullPolicy() throws Exception {
- AspectDefinition noPolicy = new AspectDefinition.Builder(TEST_ASPECT_CLASS)
- .requiresConfigurationFragmentsBySkylarkModuleName(ImmutableList.<String>of())
- .requiresHostConfigurationFragmentsBySkylarkModuleName(ImmutableList.<String>of())
- .build();
+ AspectDefinition noPolicy =
+ ConfigAwareAspectBuilder.of(new AspectDefinition.Builder(TEST_ASPECT_CLASS))
+ .requiresHostConfigurationFragmentsBySkylarkModuleName(ImmutableList.<String>of())
+ .originalBuilder()
+ .requiresConfigurationFragmentsBySkylarkModuleName(ImmutableList.<String>of())
+ .build();
assertThat(noPolicy.getConfigurationFragmentPolicy()).isNotNull();
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java b/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java
index a3ea359781..7ed005a3d1 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java
@@ -19,7 +19,6 @@ import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -71,13 +70,21 @@ public final class ConfigurationFragmentPolicyTest {
.containsExactly(Integer.class, String.class, Long.class);
}
+ private static final Attribute.Transition TEST_HOST_TRANSITION = new Attribute.Transition() {
+ @Override
+ public boolean isHostTransition() {
+ return true;
+ }
+ };
+
@Test
public void testRequiresConfigurationFragments_RequiredAndLegalForSpecifiedConfiguration()
throws Exception {
ConfigurationFragmentPolicy policy =
new ConfigurationFragmentPolicy.Builder()
.requiresConfigurationFragments(ImmutableSet.<Class<?>>of(Integer.class))
- .requiresHostConfigurationFragments(ImmutableSet.<Class<?>>of(Long.class))
+ .requiresConfigurationFragments(TEST_HOST_TRANSITION,
+ ImmutableSet.<Class<?>>of(Long.class))
.build();
assertThat(policy.getRequiredConfigurationFragments()).containsAllOf(Integer.class, Long.class);
@@ -87,7 +94,7 @@ public final class ConfigurationFragmentPolicyTest {
.isTrue();
// TODO(mstaib): .isFalse() when dynamic configurations care which configuration a fragment was
// specified for
- assertThat(policy.isLegalConfigurationFragment(Integer.class, ConfigurationTransition.HOST))
+ assertThat(policy.isLegalConfigurationFragment(Integer.class, TEST_HOST_TRANSITION))
.isTrue();
assertThat(policy.isLegalConfigurationFragment(Long.class)).isTrue();
@@ -95,13 +102,13 @@ public final class ConfigurationFragmentPolicyTest {
// specified for
assertThat(policy.isLegalConfigurationFragment(Long.class, ConfigurationTransition.NONE))
.isTrue();
- assertThat(policy.isLegalConfigurationFragment(Long.class, ConfigurationTransition.HOST))
+ assertThat(policy.isLegalConfigurationFragment(Long.class, TEST_HOST_TRANSITION))
.isTrue();
assertThat(policy.isLegalConfigurationFragment(String.class)).isFalse();
assertThat(policy.isLegalConfigurationFragment(String.class, ConfigurationTransition.NONE))
.isFalse();
- assertThat(policy.isLegalConfigurationFragment(String.class, ConfigurationTransition.HOST))
+ assertThat(policy.isLegalConfigurationFragment(String.class, TEST_HOST_TRANSITION))
.isFalse();
}
@@ -111,7 +118,7 @@ public final class ConfigurationFragmentPolicyTest {
ConfigurationFragmentPolicy policy =
new ConfigurationFragmentPolicy.Builder()
.requiresConfigurationFragmentsBySkylarkModuleName(ImmutableSet.of("test_fragment"))
- .requiresHostConfigurationFragmentsBySkylarkModuleName(
+ .requiresConfigurationFragmentsBySkylarkModuleName(TEST_HOST_TRANSITION,
ImmutableSet.of("other_fragment"))
.build();
@@ -122,7 +129,7 @@ public final class ConfigurationFragmentPolicyTest {
policy.isLegalConfigurationFragment(TestFragment.class, ConfigurationTransition.NONE))
.isTrue();
assertThat(
- policy.isLegalConfigurationFragment(TestFragment.class, ConfigurationTransition.HOST))
+ policy.isLegalConfigurationFragment(TestFragment.class, TEST_HOST_TRANSITION))
.isFalse();
assertThat(policy.isLegalConfigurationFragment(OtherFragment.class)).isTrue();
@@ -130,7 +137,7 @@ public final class ConfigurationFragmentPolicyTest {
policy.isLegalConfigurationFragment(OtherFragment.class, ConfigurationTransition.NONE))
.isFalse();
assertThat(
- policy.isLegalConfigurationFragment(OtherFragment.class, ConfigurationTransition.HOST))
+ policy.isLegalConfigurationFragment(OtherFragment.class, TEST_HOST_TRANSITION))
.isTrue();
assertThat(policy.isLegalConfigurationFragment(UnknownFragment.class)).isFalse();
@@ -140,7 +147,7 @@ public final class ConfigurationFragmentPolicyTest {
.isFalse();
assertThat(
policy.isLegalConfigurationFragment(
- UnknownFragment.class, ConfigurationTransition.HOST))
+ UnknownFragment.class, TEST_HOST_TRANSITION))
.isFalse();
}
@@ -155,10 +162,11 @@ public final class ConfigurationFragmentPolicyTest {
ConfigurationFragmentPolicy addedPolicy =
new ConfigurationFragmentPolicy.Builder()
.requiresConfigurationFragmentsBySkylarkModuleName(ImmutableSet.of("other_fragment"))
- .requiresHostConfigurationFragmentsBySkylarkModuleName(
+ .requiresConfigurationFragmentsBySkylarkModuleName(TEST_HOST_TRANSITION,
ImmutableSet.of("other_fragment"))
.requiresConfigurationFragments(ImmutableSet.<Class<?>>of(Boolean.class))
- .requiresHostConfigurationFragments(ImmutableSet.<Class<?>>of(Character.class))
+ .requiresConfigurationFragments(TEST_HOST_TRANSITION,
+ ImmutableSet.<Class<?>>of(Character.class))
.build();
ConfigurationFragmentPolicy combinedPolicy =
new ConfigurationFragmentPolicy.Builder()