diff options
author | 2017-12-20 17:24:46 -0800 | |
---|---|---|
committer | 2017-12-20 17:26:58 -0800 | |
commit | 614dc50056348f5cb8eff626c30b4fdf573f2253 (patch) | |
tree | eeafa4325ddd8d15ce84abecdac9fa090ce4f9b7 /src/test | |
parent | deb9c882fb6ecab1c27f28e5e145926d18e2a3d5 (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.java | 34 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java | 30 |
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() |