From 3c0d64886d2f7f6b2015780f1628b1391c320d0f Mon Sep 17 00:00:00 2001 From: Vladimir Moskva Date: Fri, 30 Sep 2016 20:52:31 +0000 Subject: Proper error messages when built-in rule attributes are overridden #1811 -- MOS_MIGRATED_REVID=134823021 --- .../lib/skylark/SkylarkRuleClassFunctionsTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java') diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java index 03590c7979..2367da2cf5 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java @@ -97,12 +97,27 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { Assert.fail("Expected error '" + "There is already a built-in attribute 'tags' which cannot be overridden" + "' but got no error"); - } catch (IllegalArgumentException | EvalException e) { + } catch (EvalException e) { assertThat(e).hasMessage( "There is already a built-in attribute 'tags' which cannot be overridden"); } } + @Test + public void testCannotOverrideBuiltInAttributeName() throws Exception { + ev.setFailFast(true); + try { + evalAndExport( + "def impl(ctx): return", "r = rule(impl, attrs = {'name': attr.string()})"); + Assert.fail("Expected error '" + + "There is already a built-in attribute 'name' which cannot be overridden" + + "' but got no error"); + } catch (EvalException e) { + assertThat(e).hasMessage( + "There is already a built-in attribute 'name' which cannot be overridden"); + } + } + @Test public void testImplicitArgsAttribute() throws Exception { evalAndExport( -- cgit v1.2.3