aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2015-11-11 18:14:53 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-11-12 09:00:49 +0000
commita0512fea5e86352f7c18613ef656851654dbe764 (patch)
treef8f3c73d09289582823c6d8ae15152b5beae99af /src/test/java/com/google/devtools/build/lib/analysis
parentd4c953f1a987ecde294a586c5c09955d87473100 (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/com/google/devtools/build/lib/analysis')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java13
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));
+ }
}