diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/config')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java index 5cbe70305e..c3ec6f33b3 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java @@ -13,12 +13,22 @@ // limitations under the License. package com.google.devtools.build.lib.analysis.config; +import static com.google.common.truth.Truth.assertThat; +import static com.google.devtools.build.lib.analysis.config.ConfigRuleClasses.ConfigSettingRule; + +import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.Constants; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.cpp.CppConfiguration; +import com.google.devtools.build.lib.rules.java.Jvm; +import com.google.devtools.build.lib.rules.python.PythonConfiguration; import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsParser; +import java.util.Map; + /** * Tests for {@link ConfigSetting}. */ @@ -209,4 +219,23 @@ public class ConfigSettingTest extends BuildViewTestCase { "config_setting(name='cs', values={'crosstool_top': '" + crosstoolTop + "'})", "sh_library(name='a', srcs=['a.sh'], deps=select({':cs': []}))"); } + + public void testRequiredConfigFragmentMatcher() throws Exception { + scratch.file("test/BUILD", + "config_setting(", + " name = 'match',", + " values = {", + " 'copt': '-Dfoo',", + " 'javacopt': '-Dbar'", + " })"); + + Map<String, Class<? extends BuildConfiguration.Fragment>> map = ImmutableMap.of( + "copt", CppConfiguration.class, + "unused", PythonConfiguration.class, + "javacopt", Jvm.class + ); + assertThat( + ConfigSettingRule.requiresConfigurationFragments((Rule) getTarget("//test:match"), map)) + .containsExactly(CppConfiguration.class, Jvm.class); + } } |