aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
diff options
context:
space:
mode:
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.java40
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",