aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2018-04-24 05:29:15 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-24 05:30:53 -0700
commitdd9570b556e210da63a4ae882b55caf9fa10a995 (patch)
tree16d381254b228beaf2c7dde3a773f29d6e648c64 /src/test/java/com/google/devtools/build/lib/analysis
parent2c957575ff24c183d48ade4345a79ffa5bec3724 (diff)
Make the constructor of TemplateVariableInfo available in Skylark.
RELNOTES[NEW]: TemplateVariableInfo can now be constructed from Skylark. PiperOrigin-RevId: 194072452
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformInfoTest.java32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformInfoTest.java b/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformInfoTest.java
index e0b5dde4fb..89a9f82559 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformInfoTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformInfoTest.java
@@ -19,6 +19,7 @@ import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows;
import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
+import com.google.devtools.build.lib.analysis.TemplateVariableInfo;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import java.util.Map;
@@ -147,7 +148,7 @@ public class PlatformInfoTest extends BuildViewTestCase {
}
@Test
- public void makeVariableInfo() throws Exception {
+ public void templateVariableInfo() throws Exception {
scratch.file(
"a/rule.bzl",
"def _impl(ctx):",
@@ -165,4 +166,33 @@ public class PlatformInfoTest extends BuildViewTestCase {
Map<String, String> makeVariables = (Map<String, String>) ct.get("variables");
assertThat(makeVariables).containsKey("CC_FLAGS");
}
+
+ @Test
+ public void templateVariableInfoConstructor() throws Exception {
+ scratch.file(
+ "a/rule.bzl",
+ "def _consumer_impl(ctx):",
+ " return struct(",
+ " var = ctx.attr.supplier[platform_common.TemplateVariableInfo]",
+ " .variables[ctx.attr.var])",
+ "def _supplier_impl(ctx):",
+ " return [platform_common.TemplateVariableInfo({ctx.attr.var: ctx.attr.value})]",
+ "consumer = rule(_consumer_impl,",
+ " attrs = { 'var': attr.string(), 'supplier': attr.label() })",
+ "supplier = rule(_supplier_impl,",
+ " attrs = { 'var': attr.string(), 'value': attr.string() })");
+
+ scratch.file("a/BUILD",
+ "load(':rule.bzl', 'consumer', 'supplier')",
+ "consumer(name='consumer', supplier=':supplier', var='cherry')",
+ "supplier(name='supplier', var='cherry', value='ontop')");
+
+ ConfiguredTarget consumer = getConfiguredTarget("//a:consumer");
+ @SuppressWarnings("unchecked") String value = (String) consumer.get("var");
+ assertThat(value).isEqualTo("ontop");
+
+ ConfiguredTarget supplier = getConfiguredTarget("//a:supplier");
+ assertThat(supplier.get(TemplateVariableInfo.PROVIDER).getVariables())
+ .containsExactly("cherry", "ontop");
+ }
}