diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java index 6f8e3843b0..8764ac499e 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java @@ -916,6 +916,46 @@ public class SkylarkIntegrationTest extends BuildViewTestCase { } @Test + public void testPrintProviderCollection() throws Exception { + scratch.file( + "test/skylark/rules.bzl", + "", + "FooInfo = provider()", + "BarInfo = provider()", + "", + "def _top_level_rule_impl(ctx):", + " print('My Dep Providers:', ctx.attr.my_dep)", + "", + "def _dep_rule_impl(name):", + " providers = [", + " FooInfo(),", + " BarInfo(),", + " ]", + " return providers", + "", + "top_level_rule = rule(", + " implementation=_top_level_rule_impl,", + " attrs={'my_dep':attr.label()}", + ")", + "", + "dep_rule = rule(", + " implementation=_dep_rule_impl,", + ")"); + + scratch.file( + "test/skylark/BUILD", + "load('//test/skylark:rules.bzl', 'top_level_rule', 'dep_rule')", + "", + "top_level_rule(name = 'tl', my_dep=':d')", + "", + "dep_rule(name = 'd')"); + + getConfiguredTarget("//test/skylark:tl"); + assertContainsEvent( + "My Dep Providers: <target //test/skylark:d, keys:[FooInfo, BarInfo, OutputGroupInfo]>"); + } + + @Test public void testRuleClassImplicitOutputFunctionPrints() throws Exception { scratch.file( "test/skylark/extension.bzl", |