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