From c708f96b4d23a1b6b03bed50013dd437ff40e92d Mon Sep 17 00:00:00 2001 From: Ulf Adams Date: Thu, 22 Oct 2015 12:02:28 +0000 Subject: Assert the specific type of event, not just the existence of any event. Also remove a bunch of custom uses of EventCollector, and use the (already existing) EventCollectionApparatus instead. -- MOS_MIGRATED_REVID=106047665 --- .../lib/events/util/EventCollectionApparatus.java | 49 +++++++--- .../build/lib/packages/ExportsFilesTest.java | 2 +- .../build/lib/packages/PackageGroupTest.java | 8 +- .../build/lib/syntax/BuildFileASTTest.java | 10 +- .../devtools/build/lib/syntax/EvaluationTest.java | 2 +- .../devtools/build/lib/syntax/FunctionTest.java | 2 +- .../devtools/build/lib/syntax/ParserTest.java | 105 ++++++++++----------- .../build/lib/syntax/SkylarkEvaluationTest.java | 6 +- .../devtools/build/lib/syntax/ValidationTest.java | 4 +- .../build/lib/syntax/util/EvaluationTestCase.java | 8 +- 10 files changed, 113 insertions(+), 83 deletions(-) (limited to 'src/test/java/com/google/devtools/build/lib') diff --git a/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java b/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java index 9235115b0b..d64b9a4604 100644 --- a/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java +++ b/src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java @@ -29,6 +29,10 @@ import java.util.Set; * An apparatus for reporting / collecting events. */ public class EventCollectionApparatus { + private EventCollector eventCollector; + private Reporter reporter; + private PrintingEventHandler printingEventHandler; + /** * Determine which events the {@link #collector()} created by this apparatus * will collect. Default: {@link EventKind#ERRORS_AND_WARNINGS}. @@ -46,13 +50,9 @@ public class EventCollectionApparatus { this(EventKind.ERRORS_AND_WARNINGS); } - /* ---- Settings for the apparatus (configuration for creating state) ---- */ - - /* ---------- State that the apparatus initializes / operates on --------- */ - private EventCollector eventCollector; - private Reporter reporter; - private PrintingEventHandler printingEventHandler; - + public void clear() { + eventCollector.clear(); + } /** * Determine whether the {#link reporter()} created by this apparatus will @@ -82,6 +82,14 @@ public class EventCollectionApparatus { return eventCollector; } + public Iterable errors() { + return eventCollector.filtered(EventKind.ERROR); + } + + public Iterable warnings() { + return eventCollector.filtered(EventKind.WARNING); + } + /** * Redirects all output to the specified OutErr stream pair. * Returns the previous OutErr. @@ -103,11 +111,26 @@ public class EventCollectionApparatus { /** * Utility method: Assert that the {@link #collector()} has received an - * event with the {@code expectedMessage}. + * info message with the {@code expectedMessage}. + */ + public Event assertContainsInfo(String expectedMessage) { + return MoreAsserts.assertContainsEvent(eventCollector, expectedMessage, EventKind.INFO); + } + + /** + * Utility method: Assert that the {@link #collector()} has received an + * error with the {@code expectedMessage}. */ - public Event assertContainsEvent(String expectedMessage) { - return MoreAsserts.assertContainsEvent(eventCollector, - expectedMessage); + public Event assertContainsError(String expectedMessage) { + return MoreAsserts.assertContainsEvent(eventCollector, expectedMessage, EventKind.ERROR); + } + + /** + * Utility method: Assert that the {@link #collector()} has received a + * warning with the {@code expectedMessage}. + */ + public Event assertContainsWarning(String expectedMessage) { + return MoreAsserts.assertContainsEvent(eventCollector, expectedMessage, EventKind.WARNING); } public List assertContainsEventWithFrequency(String expectedMessage, @@ -125,4 +148,8 @@ public class EventCollectionApparatus { return MoreAsserts.assertContainsEventWithWordsInQuotes( eventCollector, words); } + + public void assertDoesNotContainEvent(String unexpectedEvent) { + MoreAsserts.assertDoesNotContainEvent(eventCollector, unexpectedEvent); + } } diff --git a/src/test/java/com/google/devtools/build/lib/packages/ExportsFilesTest.java b/src/test/java/com/google/devtools/build/lib/packages/ExportsFilesTest.java index 75124fbcac..c8afeea69a 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/ExportsFilesTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/ExportsFilesTest.java @@ -95,7 +95,7 @@ public class ExportsFilesTest { "genrule(name = 'foo', srcs = ['bar'], outs = [],", " cmd = '/bin/true')"); Package pkg = packages.createPackage("pkg2", buildFile); - events.assertContainsEvent("rule 'foo' in package 'pkg2' conflicts with " + events.assertContainsError("rule 'foo' in package 'pkg2' conflicts with " + "existing source file"); assertTrue(pkg.getTarget("foo") instanceof InputFile); } diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java index 9d501fcdad..5d2ab8d8bf 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java @@ -51,7 +51,7 @@ public class PackageGroupTest { events.setFailFast(false); getPackage("strawberry"); - events.assertContainsEvent("package group has invalid name"); + events.assertContainsError("package group has invalid name"); } @Test @@ -81,7 +81,7 @@ public class PackageGroupTest { events.setFailFast(false); getPackageGroup("fruits", "apple"); - events.assertContainsEvent("invalid package label: vegetables"); + events.assertContainsError("invalid package label: vegetables"); } @Test @@ -96,7 +96,7 @@ public class PackageGroupTest { events.setFailFast(false); getPackageGroup("fruits", "apple"); - events.assertContainsEvent("invalid package label: //vegetables:carrot"); + events.assertContainsError("invalid package label: //vegetables:carrot"); } @Test @@ -109,7 +109,7 @@ public class PackageGroupTest { events.setFailFast(false); getPackageGroup("fruits", "apple"); - events.assertContainsEvent("invalid package label: :carrot"); + events.assertContainsError("invalid package label: :carrot"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java b/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java index 85880c767e..86e0bddd3b 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java @@ -95,7 +95,7 @@ public class BuildFileASTTest extends EvaluationTestCase { BuildFileAST buildfile = BuildFileAST.parseBuildFile(buildFile, getEventHandler(), false); assertFalse(buildfile.exec(env, getEventHandler())); - Event e = assertContainsEvent("unsupported operand type(s) for +: 'int' and 'list'"); + Event e = assertContainsError("unsupported operand type(s) for +: 'int' and 'list'"); assertEquals(4, e.getLocation().getStartLineAndColumn().getLine()); } @@ -115,7 +115,7 @@ public class BuildFileASTTest extends EvaluationTestCase { BuildFileAST buildFileAST = parseBuildFile("foo() bar() something = baz() bar()"); - Event event = assertContainsEvent("syntax error at \'bar\': expected newline"); + Event event = assertContainsError("syntax error at \'bar\': expected newline"); assertEquals("/a/build/file/BUILD", event.getLocation().getPath().toString()); assertEquals(1, event.getLocation().getStartLineAndColumn().getLine()); @@ -126,7 +126,7 @@ public class BuildFileASTTest extends EvaluationTestCase { public void testImplicitStringConcatenationFails() throws Exception { setFailFast(false); BuildFileAST buildFileAST = parseBuildFile("a = 'foo' 'bar'"); - Event event = assertContainsEvent( + Event event = assertContainsError( "Implicit string concatenation is forbidden, use the + operator"); assertEquals("/a/build/file/BUILD", event.getLocation().getPath().toString()); @@ -140,7 +140,7 @@ public class BuildFileASTTest extends EvaluationTestCase { setFailFast(false); BuildFileAST buildFileAST = parseBuildFile("a = 'foo'\n 'bar'"); - Event event = assertContainsEvent("indentation error"); + Event event = assertContainsError("indentation error"); assertEquals("/a/build/file/BUILD", event.getLocation().getPath().toString()); assertEquals(2, event.getLocation().getStartLineAndColumn().getLine()); @@ -175,7 +175,7 @@ public class BuildFileASTTest extends EvaluationTestCase { " srcs = libs,", " includes = [ abi + opt_level + '/include' ])"); assertTrue(buildFile.containsErrors()); - assertContainsEvent("syntax error at '+': expected expression"); + assertContainsError("syntax error at '+': expected expression"); assertFalse(buildFile.exec(env, getEventHandler())); assertNull(findEvent(getEventCollector(), "$error$")); // This message should not be printed anymore. diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java index 3816c4b2c6..5a578e8e27 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java @@ -196,7 +196,7 @@ public class EvaluationTest extends EvaluationTestCase { setFailFast(false); parseExpression("1 if 2"); - assertContainsEvent( + assertContainsError( "missing else clause in conditional expression or semicolon before if"); } diff --git a/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java b/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java index 37f3b95351..d5d393702b 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java @@ -52,7 +52,7 @@ public class FunctionTest extends EvaluationTestCase { setFailFast(false); parseFile("def func(a,b,a):", " a = 1\n"); - assertContainsEvent("duplicate parameter name in function definition"); + assertContainsError("duplicate parameter name in function definition"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java index d1ac350fe5..8407823ad6 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java @@ -288,7 +288,7 @@ public class ParserTest extends EvaluationTestCase { String expr = "f(1, [x for foo foo foo foo], 3)"; FuncallExpression e = (FuncallExpression) parseExpression(expr); - assertContainsEvent("syntax error at 'foo'"); + assertContainsError("syntax error at 'foo'"); // Test that the actual parameters are: (1, $error$, 3): @@ -327,8 +327,7 @@ public class ParserTest extends EvaluationTestCase { parseExpression("f(1, ), 3)"); parseExpression("[ ) for v in 3)"); - assertContainsEvent(""); // "" matches any; - // i.e. there were some events + assertContainsError(""); // "" matches any, i.e., there were some events } @Test @@ -358,23 +357,23 @@ public class ParserTest extends EvaluationTestCase { public void testAssignKeyword() { setFailFast(false); parseExpression("with = 4"); - assertContainsEvent("keyword 'with' not supported"); - assertContainsEvent("syntax error at 'with': expected expression"); + assertContainsError("keyword 'with' not supported"); + assertContainsError("syntax error at 'with': expected expression"); } @Test public void testBreak() { setFailFast(false); parseExpression("break"); - assertContainsEvent("syntax error at 'break': expected expression"); + assertContainsError("syntax error at 'break': expected expression"); } @Test public void testTry() { setFailFast(false); parseExpression("try: 1 + 1"); - assertContainsEvent("'try' not supported, all exceptions are fatal"); - assertContainsEvent("syntax error at 'try': expected expression"); + assertContainsError("'try' not supported, all exceptions are fatal"); + assertContainsError("syntax error at 'try': expected expression"); } @Test @@ -398,7 +397,7 @@ public class ParserTest extends EvaluationTestCase { public void testInvalidAssign() { setFailFast(false); parseExpression("1 + (b = c)"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); clearEvents(); } @@ -624,23 +623,23 @@ public class ParserTest extends EvaluationTestCase { setFailFast(false); parseExpression("[x for"); - assertContainsEvent("syntax error at 'newline'"); + assertContainsError("syntax error at 'newline'"); clearEvents(); parseExpression("[x for x"); - assertContainsEvent("syntax error at 'newline'"); + assertContainsError("syntax error at 'newline'"); clearEvents(); parseExpression("[x for x in"); - assertContainsEvent("syntax error at 'newline'"); + assertContainsError("syntax error at 'newline'"); clearEvents(); parseExpression("[x for x in []"); - assertContainsEvent("syntax error at 'newline'"); + assertContainsError("syntax error at 'newline'"); clearEvents(); parseExpression("[x for x for y in ['a']]"); - assertContainsEvent("syntax error at 'for'"); + assertContainsError("syntax error at 'for'"); clearEvents(); } @@ -689,9 +688,9 @@ public class ParserTest extends EvaluationTestCase { ""); assertThat(getEventCollector()).hasSize(3); - assertContainsEvent("syntax error at 'for': expected newline"); - assertContainsEvent("syntax error at 'ada': expected newline"); - assertContainsEvent("syntax error at '+': expected expression"); + assertContainsError("syntax error at 'for': expected newline"); + assertContainsError("syntax error at 'ada': expected newline"); + assertContainsError("syntax error at '+': expected expression"); assertThat(statements).hasSize(3); } @@ -699,7 +698,7 @@ public class ParserTest extends EvaluationTestCase { public void testParserContainsErrorsIfSyntaxException() throws Exception { setFailFast(false); parseExpression("'foo' %%"); - assertContainsEvent("syntax error at '%'"); + assertContainsError("syntax error at '%'"); } @Test @@ -711,7 +710,7 @@ public class ParserTest extends EvaluationTestCase { public void testParserContainsErrors() throws Exception { setFailFast(false); parseFile("+"); - assertContainsEvent("syntax error at '+'"); + assertContainsError("syntax error at '+'"); } @Test @@ -730,7 +729,7 @@ public class ParserTest extends EvaluationTestCase { "foo='foo' error(bar)", "", ""); - assertContainsEvent("syntax error at 'error'"); + assertContainsError("syntax error at 'error'"); assertThat(stmts).hasSize(1); } @@ -830,7 +829,7 @@ public class ParserTest extends EvaluationTestCase { // Note: missing comma after name='foo' parseFile("genrule(name = 'foo'\n" + " srcs = ['in'])"); - assertContainsEvent("syntax error at 'srcs'"); + assertContainsError("syntax error at 'srcs'"); } @Test @@ -838,7 +837,7 @@ public class ParserTest extends EvaluationTestCase { setFailFast(false); // Regression test. parseFile("x = 1; ; x = 2;"); - assertContainsEvent("syntax error at ';'"); + assertContainsError("syntax error at ';'"); } @Test @@ -902,7 +901,7 @@ public class ParserTest extends EvaluationTestCase { "def foo(x):", "x = 2;\n"); assertThat(stmts).hasSize(2); - assertContainsEvent("expected an indented block"); + assertContainsError("expected an indented block"); } @Test @@ -912,7 +911,7 @@ public class ParserTest extends EvaluationTestCase { "x = 1;", "def foo(x)", "x = 2;\n"); - assertContainsEvent("syntax error at 'EOF'"); + assertContainsError("syntax error at 'EOF'"); } @Test @@ -963,7 +962,7 @@ public class ParserTest extends EvaluationTestCase { " x = 2", "x = 3;\n"); assertThat(stmts).hasSize(2); - assertContainsEvent("This is not supported in BUILD files"); + assertContainsError("This is not supported in BUILD files"); } @Test @@ -1012,28 +1011,28 @@ public class ParserTest extends EvaluationTestCase { public void testForLoopBadSyntax() throws Exception { setFailFast(false); parseFile("[1 for (a, b, c in var]\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } @Test public void testForLoopBadSyntax2() throws Exception { setFailFast(false); parseFile("[1 for in var]\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } @Test public void testFunCallBadSyntax() throws Exception { setFailFast(false); parseFile("f(1,\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } @Test public void testFunCallBadSyntax2() throws Exception { setFailFast(false); parseFile("f(1, 5, ,)\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } private static final String DOUBLE_SLASH_LOAD = "load('//foo/bar/file', 'test')\n"; @@ -1045,21 +1044,21 @@ public class ParserTest extends EvaluationTestCase { public void testLoadDoubleSlashBuild() throws Exception { setFailFast(false); parseFile(DOUBLE_SLASH_LOAD); - assertContainsEvent(DOUBLE_SLASH_ERROR); + assertContainsError(DOUBLE_SLASH_ERROR); } @Test public void testLoadDoubleSlashSkylark() throws Exception { setFailFast(false); parseFileForSkylark(DOUBLE_SLASH_LOAD); - assertContainsEvent(DOUBLE_SLASH_ERROR); + assertContainsError(DOUBLE_SLASH_ERROR); } @Test public void testLoadNoSymbol() throws Exception { setFailFast(false); parseFileForSkylark("load('/foo/bar/file')\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } @Test @@ -1093,21 +1092,21 @@ public class ParserTest extends EvaluationTestCase { public void testLoadSyntaxError() throws Exception { setFailFast(false); parseFileForSkylark("load(non_quoted, 'a')\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } @Test public void testLoadSyntaxError2() throws Exception { setFailFast(false); parseFileForSkylark("load('non_quoted', a)\n"); - assertContainsEvent("syntax error"); + assertContainsError("syntax error"); } @Test public void testLoadNotAtTopLevel() throws Exception { setFailFast(false); parseFileForSkylark("if 1: load(8)\n"); - assertContainsEvent("function 'load' does not exist"); + assertContainsError("function 'load' does not exist"); } @Test @@ -1142,48 +1141,48 @@ public class ParserTest extends EvaluationTestCase { public void testLoadAliasSyntaxError() throws Exception { setFailFast(false); parseFileForSkylark("load('/foo', test1 = )\n"); - assertContainsEvent("syntax error at ')': expected string"); + assertContainsError("syntax error at ')': expected string"); parseFileForSkylark("load('/foo', test2 = 1)\n"); - assertContainsEvent("syntax error at '1': expected string"); + assertContainsError("syntax error at '1': expected string"); parseFileForSkylark("load('/foo', test3 = old)\n"); - assertContainsEvent("syntax error at 'old': expected string"); + assertContainsError("syntax error at 'old': expected string"); } @Test public void testParseErrorNotComparison() throws Exception { setFailFast(false); parseFile("2 < not 3"); - assertContainsEvent("syntax error at 'not'"); + assertContainsError("syntax error at 'not'"); } @Test public void testNotWithArithmeticOperatorsBadSyntax() throws Exception { setFailFast(false); parseFile("0 + not 0"); - assertContainsEvent("syntax error at 'not'"); + assertContainsError("syntax error at 'not'"); } @Test public void testKwargsForbidden() throws Exception { setFailFast(false); parseFile("func(**dict)"); - assertContainsEvent("**kwargs arguments are not allowed in BUILD files"); + assertContainsError("**kwargs arguments are not allowed in BUILD files"); } @Test public void testArgsForbidden() throws Exception { setFailFast(false); parseFile("func(*array)"); - assertContainsEvent("*args arguments are not allowed in BUILD files"); + assertContainsError("*args arguments are not allowed in BUILD files"); } @Test public void testOptionalArgBeforeMandatoryArgInFuncDef() throws Exception { setFailFast(false); parseFileForSkylark("def func(a, b = 'a', c):\n return 0\n"); - assertContainsEvent( + assertContainsError( "a mandatory positional parameter must not follow an optional parameter"); } @@ -1193,7 +1192,7 @@ public class ParserTest extends EvaluationTestCase { parseFileForSkylark( "def func(a, b): return a + b", "func(**{'b': 1}, 'a')"); - assertContainsEvent("unexpected tokens after kwarg"); + assertContainsError("unexpected tokens after kwarg"); } @Test @@ -1202,7 +1201,7 @@ public class ParserTest extends EvaluationTestCase { parseFileForSkylark( "def func(a, b): return a + b", "func(**{'b': 1}, **{'a': 2})"); - assertContainsEvent("unexpected tokens after kwarg"); + assertContainsError("unexpected tokens after kwarg"); } @Test @@ -1228,7 +1227,7 @@ public class ParserTest extends EvaluationTestCase { public void testTopLevelForFails() throws Exception { setFailFast(false); parseFileForSkylark("for i in []: 0\n"); - assertContainsEvent( + assertContainsError( "for loops are not allowed on top-level. Put it into a function"); } @@ -1240,7 +1239,7 @@ public class ParserTest extends EvaluationTestCase { " def bar(): return 0", " return bar()", ""); - assertContainsEvent( + assertContainsError( "nested functions are not allowed. Move the function to top-level"); } @@ -1251,42 +1250,42 @@ public class ParserTest extends EvaluationTestCase { "def func(a):", // no if " else: return a"); - assertContainsEvent("syntax error at 'else'"); + assertContainsError("syntax error at 'else'"); } @Test public void testTryStatementInBuild() throws Exception { setFailFast(false); parseFile("try: pass"); - assertContainsEvent("syntax error at 'try': Try statements are not supported."); + assertContainsError("syntax error at 'try': Try statements are not supported."); } @Test public void testTryStatementInSkylark() throws Exception { setFailFast(false); parseFileForSkylark("try: pass"); - assertContainsEvent("syntax error at 'try': Try statements are not supported."); + assertContainsError("syntax error at 'try': Try statements are not supported."); } @Test public void testClassDefinitionInBuild() throws Exception { setFailFast(false); parseFile("class test(object): pass"); - assertContainsEvent("syntax error at 'class': Class definitions are not supported."); + assertContainsError("syntax error at 'class': Class definitions are not supported."); } @Test public void testClassDefinitionInSkylark() throws Exception { setFailFast(false); parseFileForSkylark("class test(object): pass"); - assertContainsEvent("syntax error at 'class': Class definitions are not supported."); + assertContainsError("syntax error at 'class': Class definitions are not supported."); } @Test public void testDefInBuild() throws Exception { setFailFast(false); parseFile("def func(): pass"); - assertContainsEvent("syntax error at 'def': This is not supported in BUILD files. " + assertContainsError("syntax error at 'def': This is not supported in BUILD files. " + "Move the block to a .bzl file and load it"); } } diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java index eb0f0959e2..1412c5afe7 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java @@ -972,11 +972,11 @@ public class SkylarkEvaluationTest extends EvaluationTest { // TODO(fwe): cannot be handled by current testing suite setFailFast(false); eval("print('hello')"); - assertContainsEvent("hello"); + assertContainsWarning("hello"); eval("print('a', 'b')"); - assertContainsEvent("a b"); + assertContainsWarning("a b"); eval("print('a', 'b', sep='x')"); - assertContainsEvent("axb"); + assertContainsWarning("axb"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java index 5f9a71208c..0f7473596d 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java @@ -291,7 +291,7 @@ public class ValidationTest extends EvaluationTestCase { setFailFast(false); parseFile( "def GenerateMapNames():", " a = 2", " b = [3, 4]", " if a not b:", " print(a)"); - assertContainsEvent("syntax error at 'b': expected in"); + assertContainsError("syntax error at 'b': expected in"); // Parser uses "$error" symbol for error recovery. // It should not be used in error messages. for (Event event : getEventCollector()) { @@ -383,6 +383,6 @@ public class ValidationTest extends EvaluationTestCase { private void checkError(String errorMsg, String... lines) { setFailFast(false); parseFile(lines); - assertContainsEvent(errorMsg); + assertContainsError(errorMsg); } } diff --git a/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java b/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java index e8c73c7268..6e668a36cf 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/util/EvaluationTestCase.java @@ -198,8 +198,12 @@ public class EvaluationTestCase { return eventCollectionApparatus.collector(); } - public Event assertContainsEvent(String expectedMessage) { - return eventCollectionApparatus.assertContainsEvent(expectedMessage); + public Event assertContainsError(String expectedMessage) { + return eventCollectionApparatus.assertContainsError(expectedMessage); + } + + public Event assertContainsWarning(String expectedMessage) { + return eventCollectionApparatus.assertContainsWarning(expectedMessage); } public List assertContainsEventWithFrequency( -- cgit v1.2.3