aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java19
1 files changed, 19 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 75d79294f5..badce86c03 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
@@ -1185,6 +1185,25 @@ public class SkylarkIntegrationTest extends BuildViewTestCase {
}
@Test
+ public void testConflictingProviderKeys() throws Exception {
+ scratch.file(
+ "test/extension.bzl",
+ "my_provider = provider()",
+ "other_provider = provider()",
+ "def _impl(ctx):",
+ " return struct(providers = [my_provider(x = 1), other_provider(), my_provider()])",
+ "my_rule = rule(_impl)"
+ );
+
+ checkError(
+ "test",
+ "r",
+ "Multiple conflicting returned providers with key my_provider",
+ "load(':extension.bzl', 'my_rule')",
+ "my_rule(name = 'r')");
+ }
+
+ @Test
public void testRecursionDetection() throws Exception {
reporter.removeHandler(failFastHandler);
scratch.file(