diff options
author | lberki <lberki@google.com> | 2018-04-24 05:29:15 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-24 05:30:53 -0700 |
commit | dd9570b556e210da63a4ae882b55caf9fa10a995 (patch) | |
tree | 16d381254b228beaf2c7dde3a773f29d6e648c64 /src/test/java/com/google/devtools/build/lib/analysis | |
parent | 2c957575ff24c183d48ade4345a79ffa5bec3724 (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.java | 32 |
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"); + } } |