aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/config
diff options
context:
space:
mode:
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.java29
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);
+ }
}