Allow message regarding invalid type parameter in ChromeProto test

Change-Id: I8f9dced2eb043fb0a13ac82930c97397a7745546
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index d78af9d..0e11c5b 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -5,7 +5,7 @@
 
 import static com.android.tools.r8.dexsplitter.SplitterTestBase.simpleSplitProvider;
 import static com.android.tools.r8.dexsplitter.SplitterTestBase.splitWithNonJavaFile;
-import static org.hamcrest.CoreMatchers.containsString;
+import static com.android.tools.r8.utils.codeinspector.Matchers.proguardConfigurationRuleDoesNotMatch;
 
 import com.android.tools.r8.R8Command.Builder;
 import com.android.tools.r8.TestBase.Backend;
@@ -139,8 +139,7 @@
       case NONE:
         if (allowUnusedProguardConfigurationRules) {
           compileResult
-              .assertAllInfoMessagesMatch(
-                  containsString("Proguard configuration rule does not match anything"))
+              .assertAllInfosMatch(proguardConfigurationRuleDoesNotMatch())
               .assertNoErrorMessages()
               .assertNoWarningMessages();
         } else {
@@ -154,11 +153,9 @@
         throw new Unreachable();
     }
     if (allowUnusedProguardConfigurationRules) {
-      compileResult.assertInfoMessageThatMatches(
-          containsString("Proguard configuration rule does not match anything"));
+      compileResult.assertInfoThatMatches(proguardConfigurationRuleDoesNotMatch());
     } else {
-      compileResult.assertNoInfoMessageThatMatches(
-          containsString("Proguard configuration rule does not match anything"));
+      compileResult.assertNoInfoThatMatches(proguardConfigurationRuleDoesNotMatch());
     }
     return compileResult;
   }
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 789da90..19c77fb 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -1835,11 +1835,6 @@
     compileResult.assertAllInfoMessagesMatch(containsString("A type variable is not in scope"));
   }
 
-  public static void verifyHasInfoFromGenericSignatureTypeParameterValidation(
-      TestCompileResult<?, ?> compileResult) {
-    compileResult.assertInfoMessageThatMatches(containsString("A type variable is not in scope"));
-  }
-
   public static void verifyExpectedInfoFromGenericSignatureSuperTypeValidation(
       TestCompileResult<?, ?> compileResult) {
     compileResult.assertAtLeastOneInfoMessage();
diff --git a/src/test/java/com/android/tools/r8/TestCompileResult.java b/src/test/java/com/android/tools/r8/TestCompileResult.java
index 5788681..827684d 100644
--- a/src/test/java/com/android/tools/r8/TestCompileResult.java
+++ b/src/test/java/com/android/tools/r8/TestCompileResult.java
@@ -358,15 +358,30 @@
     return self();
   }
 
+  public CR assertInfoThatMatches(Matcher<Diagnostic> matcher) {
+    getDiagnosticMessages().assertInfoThatMatches(matcher);
+    return self();
+  }
+
   public CR assertInfoMessageThatMatches(Matcher<String> matcher) {
     getDiagnosticMessages().assertInfoThatMatches(diagnosticMessage(matcher));
     return self();
   }
 
+  public CR assertAllInfosMatch(Matcher<Diagnostic> matcher) {
+    getDiagnosticMessages().assertNoInfosMatch(not(matcher));
+    return self();
+  }
+
   public CR assertAllInfoMessagesMatch(Matcher<String> matcher) {
     return assertNoInfoMessageThatMatches(not(matcher));
   }
 
+  public CR assertNoInfoThatMatches(Matcher<Diagnostic> matcher) {
+    getDiagnosticMessages().assertNoInfosMatch(matcher);
+    return self();
+  }
+
   public CR assertNoInfoMessageThatMatches(Matcher<String> matcher) {
     getDiagnosticMessages().assertNoInfosMatch(diagnosticMessage(matcher));
     return self();
diff --git a/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java b/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
index 00fff76..183031e 100644
--- a/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
+++ b/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
@@ -3,8 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.internal;
 
+import static com.android.tools.r8.utils.codeinspector.Matchers.proguardConfigurationRuleDoesNotMatch;
+import static com.android.tools.r8.utils.codeinspector.Matchers.typeVariableNotInScope;
+import static org.hamcrest.CoreMatchers.anyOf;
+
 import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestDiagnosticMessages;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.utils.AndroidApiLevel;
@@ -46,7 +49,9 @@
         .allowUnnecessaryDontWarnWildcards()
         .setMinApi(AndroidApiLevel.N)
         .allowDiagnosticInfoMessages()
-        .compileWithExpectedDiagnostics(TestDiagnosticMessages::assertOnlyInfos)
-        .apply(TestBase::verifyHasInfoFromGenericSignatureTypeParameterValidation);
+        .compileWithExpectedDiagnostics(
+            diagnostics ->
+                diagnostics.assertAllInfosMatch(
+                    anyOf(typeVariableNotInScope(), proguardConfigurationRuleDoesNotMatch())));
   }
 }
diff --git a/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java b/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
index 12236fc..4e784a3 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
@@ -8,6 +8,9 @@
 import static com.android.tools.r8.internal.proto.ProtoShrinkingTestBase.keepAllProtosRule;
 import static com.android.tools.r8.internal.proto.ProtoShrinkingTestBase.keepDynamicMethodSignatureRule;
 import static com.android.tools.r8.internal.proto.ProtoShrinkingTestBase.keepNewMessageInfoSignatureRule;
+import static com.android.tools.r8.utils.codeinspector.Matchers.proguardConfigurationRuleDoesNotMatch;
+import static com.android.tools.r8.utils.codeinspector.Matchers.typeVariableNotInScope;
+import static org.hamcrest.CoreMatchers.anyOf;
 import static org.junit.Assume.assumeTrue;
 
 import com.android.tools.r8.TestParameters;
@@ -49,7 +52,12 @@
         .allowUnusedProguardConfigurationRules()
         .enableProtoShrinking(false)
         .setMinApi(AndroidApiLevel.N)
+        .allowDiagnosticInfoMessages()
         .compile()
+        .inspectDiagnosticMessages(
+            diagnostics ->
+                diagnostics.assertAllInfosMatch(
+                    anyOf(typeVariableNotInScope(), proguardConfigurationRuleDoesNotMatch())))
         .inspect(this::inspect);
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java b/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
index 2b168c2..9947888 100644
--- a/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
@@ -5,6 +5,9 @@
 
 import static com.android.tools.r8.DiagnosticsMatcher.diagnosticException;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static com.android.tools.r8.utils.codeinspector.Matchers.proguardConfigurationRuleDoesNotMatch;
+import static com.android.tools.r8.utils.codeinspector.Matchers.typeVariableNotInScope;
+import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -110,8 +113,10 @@
         .allowUnusedProguardConfigurationRules()
         .addKeepRules("-keepclasseswithmembers class * { @" + ABSENT_ANNOTATION + " *; }")
         .allowDiagnosticInfoMessages()
-        .compile()
-        .apply(TestBase::verifyHasInfoFromGenericSignatureTypeParameterValidation)
+        .compileWithExpectedDiagnostics(
+            diagnostics ->
+                diagnostics.assertAllInfosMatch(
+                    anyOf(typeVariableNotInScope(), proguardConfigurationRuleDoesNotMatch())))
         .inspect(inspector -> assertEquals(0, inspector.allClasses().size()));
   }
 
@@ -179,8 +184,10 @@
         .allowUnusedProguardConfigurationRules()
         .addKeepRules("-if class * -keep class <1> { @" + PRESENT_ANNOTATION + " *** *(...); }")
         .allowDiagnosticInfoMessages()
-        .compile()
-        .apply(TestBase::verifyHasInfoFromGenericSignatureTypeParameterValidation)
+        .compileWithExpectedDiagnostics(
+            diagnostics ->
+                diagnostics.assertAllInfosMatch(
+                    anyOf(typeVariableNotInScope(), proguardConfigurationRuleDoesNotMatch())))
         .inspect(inspector -> assertEquals(0, inspector.allClasses().size()));
   }
 
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
index 3e70473..4f4b656 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
@@ -4,10 +4,13 @@
 
 package com.android.tools.r8.utils.codeinspector;
 
+import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.Collectors;
+import com.android.tools.r8.Diagnostic;
+import com.android.tools.r8.DiagnosticsMatcher;
 import com.android.tools.r8.errors.Unreachable;
 import com.android.tools.r8.graph.AccessFlags;
 import com.android.tools.r8.graph.DexClass;
@@ -220,6 +223,15 @@
     };
   }
 
+  public static Matcher<Diagnostic> typeVariableNotInScope() {
+    return DiagnosticsMatcher.diagnosticMessage(containsString("A type variable is not in scope"));
+  }
+
+  public static Matcher<Diagnostic> proguardConfigurationRuleDoesNotMatch() {
+    return DiagnosticsMatcher.diagnosticMessage(
+        containsString("Proguard configuration rule does not match anything"));
+  }
+
   public static Matcher<Subject> isSynthetic() {
     return new TypeSafeMatcher<Subject>() {
       @Override