diff options
author | 2015-11-11 18:14:53 +0000 | |
---|---|---|
committer | 2015-11-12 09:00:49 +0000 | |
commit | a0512fea5e86352f7c18613ef656851654dbe764 (patch) | |
tree | f8f3c73d09289582823c6d8ae15152b5beae99af /src/test/java | |
parent | d4c953f1a987ecde294a586c5c09955d87473100 (diff) |
Provide a looser concept of BuildConfiguration "equality" to account
for dynamic configurations.
In short, as a configuration gets passed down its dependency tree it's
likely to lose fragments. For example, when a java_library depends on a cc_library,
the former has both JavaConfiguration and CppConfiguration while the latter
only has CppConfiguration.
It's still the "same" configuration in both cases, it's just that it got trimmed.
This cl provides a looser concept of BuildConfiguration equality that
accounts for this.
--
MOS_MIGRATED_REVID=107598262
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java index eec0b88bd4..760056ec27 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.rules.java.JavaConfiguration; import com.google.devtools.build.lib.testutil.TestConstants; +import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.common.options.Options; import java.util.Map; @@ -277,4 +278,16 @@ public class BuildConfigurationTest extends ConfigurationTestCase { "--nodistinct_host_configuration does not currently work with dynamic configurations", "--nodistinct_host_configuration", "--experimental_dynamic_configs"); } + + public void testEqualsOrIsSupersetOf() throws Exception { + BuildConfiguration config = create(); + BuildConfiguration trimmedConfig = config.clone( + ImmutableSet.<Class<? extends Fragment>>of(CppConfiguration.class), + TestRuleClassProvider.getRuleClassProvider()); + BuildConfiguration hostConfig = createHost(); + + assertTrue(config.equalsOrIsSupersetOf(trimmedConfig)); + assertFalse(config.equalsOrIsSupersetOf(hostConfig)); + assertFalse(trimmedConfig.equalsOrIsSupersetOf(config)); + } } |