aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index 4d86a34413..fbd3760519 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -760,6 +760,61 @@ public class SkylarkRuleContextTest extends SkylarkTestCase {
assertThat(result).isEqualTo("$ABC");
}
+ private void setUpMakeVarToolchain() throws Exception {
+ scratch.file(
+ "vars/vars.bzl",
+ "def _make_var_supplier_impl(ctx):",
+ " val = ctx.attr.value",
+ " return [platform_common.TemplateVariableInfo({'MAKE_VAR_VALUE': val})]",
+ "make_var_supplier = rule(",
+ " implementation = _make_var_supplier_impl,",
+ " attrs = {",
+ " 'value': attr.string(mandatory = True),",
+ " })",
+ "def _make_var_user_impl(ctx):",
+ " return []",
+ "make_var_user = rule(",
+ " implementation = _make_var_user_impl,",
+ ")");
+ scratch.file(
+ "vars/BUILD",
+ "load(':vars.bzl', 'make_var_supplier', 'make_var_user')",
+ "make_var_supplier(name = 'supplier', value = 'foo')",
+ "make_var_user(",
+ " name = 'vars',",
+ " toolchains = [':supplier'],",
+ ")");
+ }
+
+ @Test
+ public void testExpandMakeVariables_cc() throws Exception {
+ setUpMakeVarToolchain();
+ SkylarkRuleContext ruleContext = createRuleContext("//vars:vars");
+ String result =
+ (String)
+ evalRuleContextCode(
+ ruleContext, "ruleContext.expand_make_variables('cmd', '$(CC)', {})");
+ assertThat(result).isNotEmpty();
+ }
+
+ @Test
+ public void testExpandMakeVariables_toolchain() throws Exception {
+ setUpMakeVarToolchain();
+ SkylarkRuleContext ruleContext = createRuleContext("//vars:vars");
+ Object result =
+ evalRuleContextCode(
+ ruleContext, "ruleContext.expand_make_variables('cmd', '$(MAKE_VAR_VALUE)', {})");
+ assertThat(result).isEqualTo("foo");
+ }
+
+ @Test
+ public void testVar_toolchain() throws Exception {
+ setUpMakeVarToolchain();
+ SkylarkRuleContext ruleContext = createRuleContext("//vars:vars");
+ Object result = evalRuleContextCode(ruleContext, "ruleContext.var['MAKE_VAR_VALUE']");
+ assertThat(result).isEqualTo("foo");
+ }
+
@Test
public void testConfiguration() throws Exception {
SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");