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
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 9235115..d64b9a4 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 @@
  * 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 @@
     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 @@
     return eventCollector;
   }
 
+  public Iterable<Event> errors() {
+    return eventCollector.filtered(EventKind.ERROR);
+  }
+
+  public Iterable<Event> warnings() {
+    return eventCollector.filtered(EventKind.WARNING);
+  }
+
   /**
    * Redirects all output to the specified OutErr stream pair.
    * Returns the previous OutErr.
@@ -103,11 +111,26 @@
 
   /**
    * Utility method: Assert that the {@link #collector()} has received an
-   * event with the {@code expectedMessage}.
+   * info message with the {@code expectedMessage}.
    */
-  public Event assertContainsEvent(String expectedMessage) {
-    return MoreAsserts.assertContainsEvent(eventCollector,
-                                              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 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<Event> assertContainsEventWithFrequency(String expectedMessage,
@@ -125,4 +148,8 @@
     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 75124fb..c8afeea 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 @@
         "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 9d501fc..5d2ab8d 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 @@
 
     events.setFailFast(false);
     getPackage("strawberry");
-    events.assertContainsEvent("package group has invalid name");
+    events.assertContainsError("package group has invalid name");
   }
 
   @Test
@@ -81,7 +81,7 @@
 
     events.setFailFast(false);
     getPackageGroup("fruits", "apple");
-    events.assertContainsEvent("invalid package label: vegetables");
+    events.assertContainsError("invalid package label: vegetables");
   }
 
   @Test
@@ -96,7 +96,7 @@
 
     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 @@
 
     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 85880c7..86e0bdd 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 @@
     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 @@
     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 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 @@
     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 @@
         "           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 3816c4b..5a578e8 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 @@
 
     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 37f3b95..d5d3937 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 @@
     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 d1ac350..8407823 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 @@
     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 @@
     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 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 void testInvalidAssign() {
     setFailFast(false);
     parseExpression("1 + (b = c)");
-    assertContainsEvent("syntax error");
+    assertContainsError("syntax error");
     clearEvents();
   }
 
@@ -624,23 +623,23 @@
     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 @@
         "");
 
     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 void testParserContainsErrorsIfSyntaxException() throws Exception {
     setFailFast(false);
     parseExpression("'foo' %%");
-    assertContainsEvent("syntax error at '%'");
+    assertContainsError("syntax error at '%'");
   }
 
   @Test
@@ -711,7 +710,7 @@
   public void testParserContainsErrors() throws Exception {
     setFailFast(false);
     parseFile("+");
-    assertContainsEvent("syntax error at '+'");
+    assertContainsError("syntax error at '+'");
   }
 
   @Test
@@ -730,7 +729,7 @@
         "foo='foo' error(bar)",
         "",
         "");
-    assertContainsEvent("syntax error at 'error'");
+    assertContainsError("syntax error at 'error'");
     assertThat(stmts).hasSize(1);
   }
 
@@ -830,7 +829,7 @@
     // 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 @@
     setFailFast(false);
     // Regression test.
     parseFile("x = 1; ; x = 2;");
-    assertContainsEvent("syntax error at ';'");
+    assertContainsError("syntax error at ';'");
   }
 
   @Test
@@ -902,7 +901,7 @@
         "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 @@
         "x = 1;",
         "def foo(x)",
         "x = 2;\n");
-    assertContainsEvent("syntax error at 'EOF'");
+    assertContainsError("syntax error at 'EOF'");
   }
 
   @Test
@@ -963,7 +962,7 @@
         "  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 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 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 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 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 @@
     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 @@
     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 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 @@
           "  def bar(): return 0",
           "  return bar()",
           "");
-    assertContainsEvent(
+    assertContainsError(
         "nested functions are not allowed. Move the function to top-level");
   }
 
@@ -1251,42 +1250,42 @@
         "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 eb0f095..1412c5a 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 @@
     // 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 5f9a712..0f74735 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 @@
     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 @@
   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 e8c73c7..6e668a3 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 @@
     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<Event> assertContainsEventWithFrequency(