Merge commit '75d77c8fb723c131f3912d8478ff819d8a1cf698' into dev-release
diff --git a/src/test/java/com/android/tools/r8/KotlinTestBase.java b/src/test/java/com/android/tools/r8/KotlinTestBase.java index d4f443a..35e20e9 100644 --- a/src/test/java/com/android/tools/r8/KotlinTestBase.java +++ b/src/test/java/com/android/tools/r8/KotlinTestBase.java
@@ -11,6 +11,7 @@ import com.android.tools.r8.TestRuntime.CfRuntime; import com.android.tools.r8.utils.DescriptorUtils; import com.android.tools.r8.utils.FileUtils; +import com.android.tools.r8.utils.SemanticVersion; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -142,6 +143,15 @@ }; } + public static ThrowableConsumer<R8FullTestBuilder> + configureForLibraryWithEmbeddedProguardRules() { + // When running on main explicitly configure max compiler version for checking against + // embeded proguard rules. + return builder -> + builder.applyIf( + Version.isMainVersion(), b -> b.setFakeCompilerVersion(SemanticVersion.max())); + } + public static class KotlinCompileMemoizer { private final Collection<Path> sources;
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 ae82b2b..ad8ac06 100644 --- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
@@ -14,7 +14,6 @@ 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; @@ -63,12 +62,10 @@ .allowUnusedProguardConfigurationRules( kotlinc.getCompilerVersion().isGreaterThan(KOTLINC_1_3_72)) .apply(testBuilderConsumer) + .apply(configureForLibraryWithEmbeddedProguardRules()) .compile() .apply(compileResultBuilder) - .apply(assertUnusedKeepRuleForKotlinMetadata(kotlinc.isNot(KOTLINC_1_3_72))) - .applyIf( - kotlinc.getCompilerVersion().isGreaterThan(KOTLINC_1_3_72), - KotlinMetadataTestBase::verifyExpectedWarningsFromKotlinReflectAndStdLib); + .apply(assertUnusedKeepRuleForKotlinMetadata(kotlinc.isNot(KOTLINC_1_3_72))); } @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 aaedc52..07539ed 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,7 +19,6 @@ 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; @@ -177,7 +176,6 @@ compileResult.assertAllWarningMessagesMatch( anyOf( equalTo("Resource 'META-INF/MANIFEST.MF' already exists."), - equalTo("Resource 'META-INF/versions/9/module-info.class' already exists."), - LibraryProvidedProguardRulesTestUtils.getDiagnosticMessageMatcher())); + equalTo("Resource 'META-INF/versions/9/module-info.class' already exists."))); } }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java index 366f611..c5b5ff4 100644 --- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataStripTest.java
@@ -60,6 +60,7 @@ .allowUnusedDontWarnKotlinReflectJvmInternal(kotlinc.isNot(KOTLINC_1_3_72)) .allowUnusedDontWarnJavaLangClassValue( kotlinc.getCompilerVersion().isGreaterThan(KOTLINC_1_7_0)) + .apply(configureForLibraryWithEmbeddedProguardRules()) .compile() .assertNoErrorMessages() .apply(KotlinMetadataTestBase::verifyExpectedWarningsFromKotlinReflectAndStdLib)
diff --git a/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java b/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java index 15fccd2..9b536f6 100644 --- a/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java
@@ -103,6 +103,7 @@ .applyIf( parameters.isCfRuntime() && kotlinParameters.isNewerThanOrEqualTo(KOTLINC_1_8_0), TestShrinkerBuilder::addDontWarnJavaLangInvokeLambdaMetadataFactory) + .apply(configureForLibraryWithEmbeddedProguardRules()) .compile() .assertNoErrorMessages() // -keepattributes Signature is added in kotlin-reflect from version 1.4.20.
diff --git a/src/test/java/com/android/tools/r8/kotlin/reflection/ReflectiveConstructionWithInlineClassTest.java b/src/test/java/com/android/tools/r8/kotlin/reflection/ReflectiveConstructionWithInlineClassTest.java index a3e00b4..19cc939 100644 --- a/src/test/java/com/android/tools/r8/kotlin/reflection/ReflectiveConstructionWithInlineClassTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/reflection/ReflectiveConstructionWithInlineClassTest.java
@@ -114,7 +114,8 @@ .addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS) .allowDiagnosticMessages() .allowUnusedDontWarnKotlinReflectJvmInternal() - .allowUnusedDontWarnJavaLangClassValue(); + .allowUnusedDontWarnJavaLangClassValue() + .apply(configureForLibraryWithEmbeddedProguardRules()); } @Test