Run R8 on kotlinc 1.5.0 standard lib
The kotlin metadata cannot be parsed with the current
kotlin-metadata-jvm library which this test shows.
Bug: 185317811
Change-Id: I3b6d255628b091d872a6e46de84ffbe95c33cb14
diff --git a/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java b/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java
index eebed6b..869da49 100644
--- a/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java
+++ b/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java
@@ -4,15 +4,21 @@
package com.android.tools.r8.debug;
import static com.android.tools.r8.ToolHelper.getKotlinAnnotationJar;
-import static com.android.tools.r8.ToolHelper.getKotlinCompilers;
+import static com.android.tools.r8.ToolHelper.getKotlinC_1_3_72;
+import static com.android.tools.r8.ToolHelper.getKotlinC_1_4_20;
+import static com.android.tools.r8.ToolHelper.getKotlinC_1_5_0_m2;
import static com.android.tools.r8.ToolHelper.getKotlinStdlibJar;
+import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assume.assumeTrue;
import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler;
+import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion;
+import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestCompileResult;
import com.android.tools.r8.TestDiagnosticMessages;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersBuilder;
@@ -32,7 +38,7 @@
public static List<Object[]> setup() {
return buildParameters(
TestParametersBuilder.builder().withAllRuntimesAndApiLevels().build(),
- getKotlinCompilers());
+ new KotlinCompiler[] {getKotlinC_1_3_72(), getKotlinC_1_4_20(), getKotlinC_1_5_0_m2()});
}
public KotlinStdLibCompilationTest(TestParameters parameters, KotlinCompiler kotlinc) {
@@ -54,12 +60,24 @@
testForR8(parameters.getBackend())
.addProgramFiles(getKotlinStdlibJar(kotlinc), getKotlinAnnotationJar(kotlinc))
.addKeepAllAttributes()
- .allowDiagnosticWarningMessages()
+ .applyIf(
+ kotlinc.is(KotlinCompilerVersion.KOTLINC_1_5_20_M2),
+ R8TestBuilder::allowDiagnosticMessages,
+ R8TestBuilder::allowDiagnosticWarningMessages)
.noMinification()
.noTreeShaking()
.setMode(CompilationMode.DEBUG)
.setMinApi(parameters.getApiLevel())
.compile()
+ .applyIf(
+ kotlinc.is(KotlinCompilerVersion.KOTLINC_1_5_20_M2),
+ result -> {
+ result
+ .assertAllInfoMessagesMatch(containsString("Unexpected error while reading"))
+ .assertAllInfoMessagesMatch(containsString("kotlin.Metadata: null"));
+ },
+ TestCompileResult::assertNoInfoMessages)
+ .assertNoErrorMessages()
.assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."));
}
}