Fix diagnostics matcher for Kotlin tests

Change-Id: Ib62930bbe4a35a0a0db363e90bdb0bab3d1a082a
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index f4a984e..62a6e97 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -706,8 +706,8 @@
                             + ", which cannot be represented as a semantic version. Using"
                             + " an artificial version newer than any known version for selecting"
                             + " Proguard configurations embedded under META-INF/. This means that"
-                            + " all rules with a '-max-' qualifier will be excluded and all rules"
-                            + " with a -min- qualifier will be included.");
+                            + " all rules with a '-upto-' qualifier will be excluded and all rules"
+                            + " with a -from- qualifier will be included.");
                   }
                   return compilerVersion;
                 });
diff --git a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
index 0a93f62..93646a1 100644
--- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
@@ -14,6 +14,7 @@
 import com.android.tools.r8.TestShrinkerBuilder;
 import com.android.tools.r8.ThrowableConsumer;
 import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.kotlin.metadata.KotlinMetadataTestBase;
 import com.android.tools.r8.shaking.ProguardKeepAttributes;
 import java.util.Collection;
 import org.junit.Test;
@@ -55,14 +56,16 @@
         .addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
         .addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
         .addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
+        .allowDiagnosticMessages()
         .allowUnusedDontWarnKotlinReflectJvmInternal(kotlinc.isNot(KOTLINC_1_3_72))
-        .allowUnusedProguardConfigurationRules(kotlinc.isNot(KOTLINC_1_3_72))
         .allowUnusedDontWarnJavaLangClassValue(
             kotlinc.getCompilerVersion().isGreaterThan(KOTLINC_1_7_0))
+        .allowUnusedProguardConfigurationRules()
         .apply(testBuilderConsumer)
         .compile()
         .apply(compileResultBuilder)
-        .apply(assertUnusedKeepRuleForKotlinMetadata(kotlinc.isNot(KOTLINC_1_3_72)));
+        .apply(assertUnusedKeepRuleForKotlinMetadata(kotlinc.isNot(KOTLINC_1_3_72)))
+        .apply(KotlinMetadataTestBase::verifyExpectedWarningsFromKotlinReflectAndStdLib);
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java b/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java
index 07539ed..aaedc52 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java
@@ -19,6 +19,7 @@
 import com.android.tools.r8.kotlin.KotlinMetadataWriter;
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.IntBox;
+import com.android.tools.r8.utils.LibraryProvidedProguardRulesTestUtils;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
@@ -176,6 +177,7 @@
     compileResult.assertAllWarningMessagesMatch(
         anyOf(
             equalTo("Resource 'META-INF/MANIFEST.MF' already exists."),
-            equalTo("Resource 'META-INF/versions/9/module-info.class' already exists.")));
+            equalTo("Resource 'META-INF/versions/9/module-info.class' already exists."),
+            LibraryProvidedProguardRulesTestUtils.getDiagnosticMessageMatcher()));
   }
 }
diff --git a/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesR8SpecificTest.java b/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesR8SpecificTest.java
index 884de68..1079641 100644
--- a/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesR8SpecificTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/LibraryProvidedProguardRulesR8SpecificTest.java
@@ -4,15 +4,13 @@
 
 package com.android.tools.r8.shaking;
 
-import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
-import static org.hamcrest.CoreMatchers.allOf;
-import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.Version;
 import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.LibraryProvidedProguardRulesTestUtils;
 import com.android.tools.r8.utils.SemanticVersion;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
@@ -237,13 +235,7 @@
                     1,
                     diagnostics.getWarnings().stream()
                         .filter(
-                            allOf(
-                                    diagnosticMessage(containsString("Running R8 version main")),
-                                    diagnosticMessage(
-                                        containsString(
-                                            "Using an artificial version newer than any known"
-                                                + " version")))
-                                ::matches)
+                            LibraryProvidedProguardRulesTestUtils.getDiagnosticMatcher()::matches)
                         .count()))
         .inspectProguardConfiguration(
             configuration ->
diff --git a/src/test/java/com/android/tools/r8/utils/LibraryProvidedProguardRulesTestUtils.java b/src/test/java/com/android/tools/r8/utils/LibraryProvidedProguardRulesTestUtils.java
new file mode 100644
index 0000000..b3f33be
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/utils/LibraryProvidedProguardRulesTestUtils.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.utils;
+
+import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
+import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
+import static org.hamcrest.CoreMatchers.allOf;
+import static org.hamcrest.CoreMatchers.equalTo;
+
+import com.android.tools.r8.Diagnostic;
+import com.android.tools.r8.Version;
+import org.hamcrest.Matcher;
+
+public class LibraryProvidedProguardRulesTestUtils {
+
+  public static Matcher<Diagnostic> getDiagnosticMatcher() {
+    return allOf(
+        diagnosticType(StringDiagnostic.class), diagnosticMessage(getDiagnosticMessageMatcher()));
+  }
+
+  public static Matcher<String> getDiagnosticMessageMatcher() {
+    return equalTo(
+        "Running R8 version "
+            + Version.getVersionString()
+            + ", which cannot be represented as a semantic version. Using an artificial version "
+            + "newer than any known version for selecting Proguard configurations embedded under "
+            + "META-INF/. This means that all rules with a '-upto-' qualifier will be excluded and "
+            + "all rules with a -from- qualifier will be included.");
+  }
+}