Revert "Update kotlin tests to take in test parameters" This reverts commit 1b5390c5c871317acf26462e94b1c50470ced3b5. Revert "Add kotlinc 1.4.20 to test matrix" This reverts commit dacb73be0a96885fa29832c82c33239fb855077d. Change-Id: If3d39c1f682da90948457e75e7e4dabbf46fd5d8
diff --git a/build.gradle b/build.gradle index 09bd946..121279f 100644 --- a/build.gradle +++ b/build.gradle
@@ -337,7 +337,6 @@ "kotlin/kotlin-compiler-1.3.11", "kotlin/kotlin-compiler-1.3.41", "kotlin/kotlin-compiler-1.3.72", - "kotlin/kotlin-compiler-1.4.20", "kotlinx-coroutines-1.3.6", "openjdk/openjdk-rt-1.8", "openjdk/desugar_jdk_libs",
diff --git a/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java b/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java index 89bcb10..e96cb83 100644 --- a/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java +++ b/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java
@@ -62,7 +62,7 @@ public boolean validate(InternalOptions options) { assert options.testing.allowUnnecessaryDontWarnWildcards || validateNoUnnecessaryDontWarnWildcards(); - assert options.testing.allowUnusedDontWarnRules || validateNoUnusedDontWarnPatterns(options); + assert options.testing.allowUnusedDontWarnRules || validateNoUnusedDontWarnPatterns(); return true; } @@ -79,10 +79,9 @@ return true; } - public boolean validateNoUnusedDontWarnPatterns(InternalOptions options) { + public boolean validateNoUnusedDontWarnPatterns() { for (ProguardClassNameList dontWarnPattern : dontWarnPatterns) { assert matchedDontWarnPatterns.containsKey(dontWarnPattern) - || options.testing.allowedUnusedDontWarnPatterns.contains(dontWarnPattern.toString()) : "Unexpected unused rule -dontwarn " + dontWarnPattern.toString(); } return true;
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java index fdb9472..44d6ede 100644 --- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java +++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
@@ -30,7 +30,8 @@ public class KotlinMetadataRewriter { // Due to a bug with nested classes and the lookup of RequirementVersion, we bump all metadata - // versions to 1.4 if compiled with kotlin 1.3 (1.1.16). For more information, see b/161885097. + // versions to 1.4 if compiled with kotlin 1.3 (1.1.16). For more information, see b/161885097 for + // more information. private static final int[] METADATA_VERSION_1_4 = new int[] {1, 4, 0}; private static final class WriteMetadataFieldInfo {
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java index fe679ca..afbafe0 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -76,7 +76,6 @@ import java.util.Comparator; import java.util.Deque; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -1324,7 +1323,6 @@ System.getProperty("com.android.tools.r8.allowInvalidCfAccessFlags") != null; // TODO(b/177333791): Set to true public boolean checkForNotExpandingMainDexTracingResult = false; - public Set<String> allowedUnusedDontWarnPatterns = new HashSet<>(); public boolean allowConflictingSyntheticTypes = false;
diff --git a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java index 8e94e5e..bee542f 100644 --- a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java +++ b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
@@ -27,37 +27,22 @@ public class KotlinCompilerTool { - public enum KotlinCompilerVersion { - KOTLINC_1_3_72("kotlin-compiler-1.3.72"), - KOTLINC_1_4_20("kotlin-compiler-1.4.20"); - - private final String folder; - - KotlinCompilerVersion(String folder) { - this.folder = folder; - } - } - public static final class KotlinCompiler { private final String name; private final Path lib; private final Path compiler; - private final KotlinCompilerVersion compilerVersion; - public KotlinCompiler(KotlinCompilerVersion compilerVersion) { - this.lib = - Paths.get(ToolHelper.THIRD_PARTY_DIR, "kotlin", compilerVersion.folder, "kotlinc", "lib"); + public KotlinCompiler(String name) { + this.name = name; + this.lib = Paths.get(ToolHelper.THIRD_PARTY_DIR, "kotlin", name, "kotlinc", "lib"); this.compiler = lib.resolve("kotlin-compiler.jar"); - this.compilerVersion = compilerVersion; - this.name = compilerVersion.name(); } - public KotlinCompiler(String name, Path compiler, KotlinCompilerVersion compilerVersion) { + public KotlinCompiler(String name, Path compiler) { + this.name = name; this.compiler = compiler; this.lib = null; - this.compilerVersion = compilerVersion; - this.name = name; } public Path getCompiler() { @@ -68,14 +53,6 @@ return lib; } - public boolean is(KotlinCompilerVersion version) { - return compilerVersion == version; - } - - public KotlinCompilerVersion getCompilerVersion() { - return compilerVersion; - } - @Override public String toString() { return name;
diff --git a/src/test/java/com/android/tools/r8/KotlinTestBase.java b/src/test/java/com/android/tools/r8/KotlinTestBase.java index f018f74..38202a6 100644 --- a/src/test/java/com/android/tools/r8/KotlinTestBase.java +++ b/src/test/java/com/android/tools/r8/KotlinTestBase.java
@@ -3,7 +3,6 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8; -import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage; import static org.hamcrest.CoreMatchers.containsString; import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler; @@ -112,22 +111,6 @@ sharedFolder, ignore -> new KotlinCompileMemoizer(sources)); } - public ThrowableConsumer<R8TestCompileResult> assertUnusedKeepRuleForKotlinMetadata( - boolean condition) { - return compileResult -> { - if (!condition) { - return; - } - compileResult - .getDiagnosticMessages() - .assertInfoThatMatches( - diagnosticMessage( - containsString( - "Proguard configuration rule does not match anything: `-keep class" - + " kotlin.Metadata"))); - }; - } - public static class KotlinCompileMemoizer { private final Collection<Path> sources;
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java index e1d8658..83313a3 100644 --- a/src/test/java/com/android/tools/r8/R8TestBuilder.java +++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -309,20 +309,6 @@ return self(); } - public T allowUnusedDontWarnKotlinReflectJvmInternal() { - addOptionsModification( - options -> - options.testing.allowedUnusedDontWarnPatterns.add("kotlin.reflect.jvm.internal.**")); - return self(); - } - - public T allowUnusedDontWarnKotlinReflectJvmInternal(boolean condition) { - if (condition) { - allowUnusedDontWarnKotlinReflectJvmInternal(); - } - return self(); - } - public T allowUnusedDontWarnPatterns() { return addOptionsModification(options -> options.testing.allowUnusedDontWarnRules = true); }
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java index f873336..c906281 100644 --- a/src/test/java/com/android/tools/r8/ToolHelper.java +++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -3,8 +3,6 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_4_20; import static com.android.tools.r8.utils.FileUtils.CLASS_EXTENSION; import static com.android.tools.r8.utils.FileUtils.isDexFile; import static org.junit.Assert.assertEquals; @@ -2135,15 +2133,11 @@ } public static KotlinCompiler getKotlinC_1_3_72() { - return new KotlinCompiler(KOTLINC_1_3_72); - } - - public static KotlinCompiler getKotlinC_1_4_20() { - return new KotlinCompiler(KOTLINC_1_4_20); + return new KotlinCompiler("kotlin-compiler-1.3.72"); } public static KotlinCompiler[] getKotlinCompilers() { - return new KotlinCompiler[] {getKotlinC_1_3_72(), getKotlinC_1_4_20()}; + return new KotlinCompiler[] {getKotlinC_1_3_72()}; } public static void disassemble(AndroidApp app, PrintStream ps)
diff --git a/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java b/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java index d6a696c..98421ae 100644 --- a/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java +++ b/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
@@ -7,13 +7,11 @@ import static com.android.tools.r8.ToolHelper.getFilesInTestFolderRelativeToClass; import static com.android.tools.r8.ToolHelper.getKotlinCompilers; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; -import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; 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.TestBase; import com.android.tools.r8.TestParameters; import com.android.tools.r8.TestRuntime; @@ -80,11 +78,6 @@ assertThat(clazz, isPresent()); AnnotationSubject sourceDebugExtensions = clazz.annotation("dalvik.annotation.SourceDebugExtension"); - // TODO(b/179866574): This is somehow not present - if (kotlinCompiler.is(KotlinCompilerVersion.KOTLINC_1_4_20)) { - assertThat(sourceDebugExtensions, not(isPresent())); - } else { - assertThat(sourceDebugExtensions, isPresent()); - } + assertThat(sourceDebugExtensions, isPresent()); } }
diff --git a/src/test/java/com/android/tools/r8/cf/bootstrap/KotlinCompilerTreeShakingTest.java b/src/test/java/com/android/tools/r8/cf/bootstrap/KotlinCompilerTreeShakingTest.java index 3dd6878..7aa4205 100644 --- a/src/test/java/com/android/tools/r8/cf/bootstrap/KotlinCompilerTreeShakingTest.java +++ b/src/test/java/com/android/tools/r8/cf/bootstrap/KotlinCompilerTreeShakingTest.java
@@ -119,8 +119,7 @@ Path classPathAfter = kotlinc( parameters.getRuntime().asCf(), - new KotlinCompiler( - "r8ProcessedKotlinc", r8ProcessedKotlinc, kotlinCompiler.getCompilerVersion()), + new KotlinCompiler("r8ProcessedKotlinc", r8ProcessedKotlinc), KotlinTargetVersion.JAVA_8) .addSourceFiles(HELLO_KT) .setOutputPath(temp.newFolder().toPath())
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java index 2d3c243..4ac6ddf 100644 --- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java +++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/kotlin/KotlinMetadataTest.java
@@ -4,10 +4,10 @@ package com.android.tools.r8.desugar.desugaredlibrary.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_4_20; import static com.android.tools.r8.KotlinTestBase.getCompileMemoizer; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertNotNull; @@ -24,7 +24,6 @@ import com.android.tools.r8.ToolHelper; import com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase; import com.android.tools.r8.kotlin.KotlinMetadataWriter; -import com.android.tools.r8.kotlin.metadata.KotlinMetadataTestBase; import com.android.tools.r8.shaking.ProguardKeepAttributes; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.DescriptorUtils; @@ -130,18 +129,17 @@ .addKeepAllClassesRule() .addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS) .setMinApi(parameters.getApiLevel()) - .allowDiagnosticWarningMessages() - .allowUnusedDontWarnKotlinReflectJvmInternal( - kotlinParameters.getCompiler().is(KOTLINC_1_4_20)); + .allowDiagnosticWarningMessages(); KeepRuleConsumer keepRuleConsumer = null; if (desugarLibrary) { keepRuleConsumer = createKeepRuleConsumer(parameters); testBuilder.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer); } - R8TestCompileResult compileResult = + final R8TestCompileResult compileResult = testBuilder .compile() - .apply(KotlinMetadataTestBase::verifyExpectedWarningsFromKotlinReflectAndStdLib); + .assertAllWarningMessagesMatch( + equalTo("Resource 'META-INF/MANIFEST.MF' already exists.")); if (desugarLibrary) { assertNotNull(keepRuleConsumer); compileResult.addDesugaredCoreLibraryRunClassPath(
diff --git a/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java b/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java index 55912a1..0fb02d7 100644 --- a/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java +++ b/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
@@ -18,7 +18,6 @@ import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.R8FullTestBuilder; import com.android.tools.r8.R8TestRunResult; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.ThrowableConsumer; import com.android.tools.r8.ToolHelper; import com.android.tools.r8.graph.Code; @@ -50,20 +49,14 @@ private final List<Path> classpath = new ArrayList<>(); private final List<Path> extraClasspath = new ArrayList<>(); - private final TestParameters testParameters; - // Some tests defined in subclasses, e.g., Metadata tests, don't care about access relaxation. - protected AbstractR8KotlinTestBase( - TestParameters parameters, KotlinTestParameters kotlinParameters) { - this(parameters, kotlinParameters, false); + protected AbstractR8KotlinTestBase(KotlinTestParameters kotlinParameters) { + this(kotlinParameters, false); } protected AbstractR8KotlinTestBase( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { super(kotlinParameters); - this.testParameters = parameters; this.allowAccessModification = allowAccessModification; } @@ -244,19 +237,18 @@ } // Build with R8 - return testForR8(testParameters.getBackend()) + return testForR8(Backend.DEX) .addProgramFiles(classpath) .addKeepMainRule(mainClass) .allowAccessModification(allowAccessModification) .allowDiagnosticWarningMessages() .enableProguardTestOptions() .noMinification() - .setMinApi(testParameters.getApiLevel()) .apply(configuration) .compile() .assertAllWarningMessagesMatch( containsString("Resource 'META-INF/MANIFEST.MF' already exists.")) - .run(testParameters.getRuntime(), mainClass) + .run(mainClass) .assertSuccessWithOutput(javaResult.stdout); }
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java index 0d7ba65..608b92b 100644 --- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
@@ -4,15 +4,13 @@ package com.android.tools.r8.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assume.assumeTrue; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; +import com.android.tools.r8.KotlinTestParametersCollection; import com.android.tools.r8.TestShrinkerBuilder; import com.android.tools.r8.code.NewInstance; import com.android.tools.r8.code.SgetObject; @@ -39,15 +37,13 @@ @RunWith(Parameterized.class) public class KotlinClassInlinerTest extends AbstractR8KotlinTestBase { - @Parameterized.Parameters(name = "{0}, {1}") - public static List<Object[]> data() { - return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), - getKotlinTestParameters().withAllCompilersAndTargetVersions().build()); + @Parameterized.Parameters(name = "{0}") + public static KotlinTestParametersCollection data() { + return getKotlinTestParameters().withAllCompilersAndTargetVersions().build(); } - public KotlinClassInlinerTest(TestParameters parameters, KotlinTestParameters kotlinParameters) { - super(parameters, kotlinParameters, true); + public KotlinClassInlinerTest(KotlinTestParameters kotlinParameters) { + super(kotlinParameters, true); } private static boolean isLambda(DexClass clazz) { @@ -207,8 +203,6 @@ @Test public void testDataClass() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); String mainClassName = "class_inliner_data_class.MainKt"; runTest( "class_inliner_data_class",
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java index f1ad6c8..1598bb8 100644 --- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java
@@ -12,7 +12,6 @@ import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.R8TestRunResult; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; import com.android.tools.r8.utils.codeinspector.FoundMethodSubject; @@ -25,19 +24,16 @@ @RunWith(Parameterized.class) public class KotlinClassStaticizerTest extends AbstractR8KotlinTestBase { - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public KotlinClassStaticizerTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinDuplicateAnnotationTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinDuplicateAnnotationTest.java index b7b1f1b..e74d082 100644 --- a/src/test/java/com/android/tools/r8/kotlin/KotlinDuplicateAnnotationTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/KotlinDuplicateAnnotationTest.java
@@ -9,7 +9,6 @@ import static org.junit.Assume.assumeTrue; import com.android.tools.r8.CompilationFailedException; -import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; import com.android.tools.r8.utils.BooleanUtils; @@ -23,7 +22,6 @@ @RunWith(Parameterized.class) public class KotlinDuplicateAnnotationTest extends AbstractR8KotlinTestBase { - private static final String FOLDER = "duplicate_annotation"; private static final String MAIN = FOLDER + ".MainKt"; private static final String KEEP_RULES = StringUtils.lines( @@ -39,7 +37,7 @@ @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), + getTestParameters().withAllRuntimes().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } @@ -50,7 +48,7 @@ TestParameters parameters, KotlinTestParameters kotlinParameters, boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + super(kotlinParameters, allowAccessModification); this.parameters = parameters; } @@ -60,8 +58,6 @@ @Test public void test_dex() { - // TODO(b/179860027): Make it run on all tests. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); assumeTrue("test DEX", parameters.isDexRuntime()); try { testForR8(parameters.getBackend()) @@ -80,8 +76,6 @@ @Test public void test_cf() throws Exception { - // TODO(b/179860027): Make it run on all tests. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); assumeTrue("test CF", parameters.isCfRuntime()); testForR8(parameters.getBackend()) .addProgramFiles(compiledJars.getForConfiguration(kotlinc, targetVersion))
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java index 068ac79..dae8a7d 100644 --- a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
@@ -3,13 +3,11 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assume.assumeTrue; -import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; import com.android.tools.r8.utils.BooleanUtils; @@ -22,28 +20,26 @@ import org.junit.runners.Parameterized; @RunWith(Parameterized.class) -public class KotlinIntrinsicsInlineTest extends KotlinTestBase { +public class KotlinIntrinsicsInlineTest extends AbstractR8KotlinTestBase { private static final String FOLDER = "intrinsics"; private static final String MAIN = FOLDER + ".InlineKt"; @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), + getTestParameters().withAllRuntimes().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } private final TestParameters parameters; - private final boolean allowAccessModification; public KotlinIntrinsicsInlineTest( TestParameters parameters, KotlinTestParameters kotlinParameters, boolean allowAccessModification) { - super(kotlinParameters); + super(kotlinParameters, allowAccessModification); this.parameters = parameters; - this.allowAccessModification = allowAccessModification; } private static final KotlinCompileMemoizer compiledJars = @@ -52,8 +48,6 @@ @Test public void b139432507() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72) || allowAccessModification); testForR8(parameters.getBackend()) .addProgramFiles(compiledJars.getForConfiguration(kotlinc, targetVersion)) .addKeepRules( @@ -87,16 +81,12 @@ @Test public void b139432507_isSupported() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72) || allowAccessModification); assumeTrue("Different inlining behavior on CF backend", parameters.isDexRuntime()); testSingle("isSupported"); } @Test public void b139432507_containsArray() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72) || allowAccessModification); assumeTrue("Different inlining behavior on CF backend", parameters.isDexRuntime()); testSingle("containsArray"); }
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java index e928379..fa3b505 100644 --- a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java
@@ -9,7 +9,6 @@ import static org.junit.Assert.assertTrue; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.TestShrinkerBuilder; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.codeinspector.MethodSubject; @@ -22,19 +21,16 @@ @RunWith(Parameterized.class) public class KotlinUnusedArgumentsInLambdasTest extends AbstractR8KotlinTestBase { - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public KotlinUnusedArgumentsInLambdasTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java index 4da0c68..226fb8b 100644 --- a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java
@@ -3,16 +3,13 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import static org.junit.Assume.assumeTrue; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.TestShrinkerBuilder; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; @@ -25,15 +22,13 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class KotlinUnusedSingletonTest extends AbstractR8KotlinTestBase { - @Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } @@ -42,16 +37,12 @@ "void java.io.PrintStream.println(java.lang.Object)"; public KotlinUnusedSingletonTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test public void b110196118() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); final String mainClassName = "unused_singleton.MainKt"; final String moduleName = "unused_singleton.TestModule"; runTest( @@ -75,7 +66,6 @@ // The method provideGreeting() is no longer being invoked -- i.e., we have been able // to determine that the class initialization of the enclosing class is trivial. ClassSubject module = inspector.clazz(moduleName); - // TODO(b/179897889): Should probably check for module being present. assertThat(main, isPresent()); assertEquals( 0,
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 b0dffa9..f53dae8 100644 --- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
@@ -3,7 +3,6 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_4_20; import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; @@ -23,7 +22,7 @@ private final TestParameters parameters; - @Parameterized.Parameters(name = "{0}, target: {1}") + @Parameterized.Parameters(name = "{0}, {1}") public static Collection<Object[]> data() { return buildParameters( getTestParameters().withAllRuntimes().build(), @@ -46,11 +45,8 @@ .addKeepAttributes(ProguardKeepAttributes.SIGNATURE) .addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES) .addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD) - .allowUnusedDontWarnKotlinReflectJvmInternal(kotlinc.is(KOTLINC_1_4_20)) - .allowUnusedProguardConfigurationRules(kotlinc.is(KOTLINC_1_4_20)) .apply(consumer) - .compile() - .apply(assertUnusedKeepRuleForKotlinMetadata(kotlinc.is(KOTLINC_1_4_20))); + .compile(); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java index 8773698..a405400 100644 --- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
@@ -9,7 +9,7 @@ import static org.junit.Assert.assertTrue; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; +import com.android.tools.r8.R8TestBuilder; import com.android.tools.r8.TestShrinkerBuilder; import com.android.tools.r8.ToolHelper; import com.android.tools.r8.ToolHelper.ProcessResult; @@ -66,19 +66,16 @@ .addProperty("property", JAVA_LANG_STRING, Visibility.PRIVATE) .addProperty("indirectPropertyGetter", JAVA_LANG_STRING, Visibility.PRIVATE); - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public R8KotlinAccessorTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test @@ -334,13 +331,7 @@ TestKotlinCompanionClass testedClass = ACCESSOR_COMPANION_PROPERTY_CLASS; String mainClass = addMainToClasspath("accessors.AccessorKt", "accessor_accessPropertyFromCompanionClass"); - runTest( - "accessors", - mainClass, - builder -> { - builder.addClasspathFiles(ToolHelper.getKotlinAnnotationJar(kotlinc)); - builder.noClassStaticizing(); - }) + runTest("accessors", mainClass, R8TestBuilder::noClassStaticizing) .inspect( inspector -> { // The classes are removed entirely as a result of member value propagation, inlining,
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java index 3b20876..b2f0927 100644 --- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
@@ -5,7 +5,6 @@ package com.android.tools.r8.kotlin; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.graph.DexCode; import com.android.tools.r8.kotlin.TestKotlinClass.Visibility; import com.android.tools.r8.naming.MemberNaming.MethodSignature; @@ -43,19 +42,16 @@ private Consumer<InternalOptions> disableClassInliner = o -> o.enableClassInlining = false; - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public R8KotlinDataClassTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java index a0187c6..11d1ea2 100644 --- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
@@ -4,11 +4,7 @@ package com.android.tools.r8.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; -import static org.junit.Assume.assumeTrue; - import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.naming.MemberNaming.MethodSignature; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; @@ -27,25 +23,20 @@ private static final TestKotlinDataClass KOTLIN_INTRINSICS_CLASS = new TestKotlinDataClass("kotlin.jvm.internal.Intrinsics"); - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public R8KotlinIntrinsicsTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test public void testParameterNullCheckIsInlined() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); final String extraRules = keepClassMethod("intrinsics.IntrinsicsKt", new MethodSignature("expectsNonNullParameters", "java.lang.String", Lists.newArrayList("java.lang.String", "java.lang.String")));
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java index c7325b0..edd2c8f 100644 --- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
@@ -7,7 +7,6 @@ import static org.junit.Assert.assertTrue; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.kotlin.TestKotlinClass.Visibility; import com.android.tools.r8.naming.MemberNaming; import com.android.tools.r8.naming.MemberNaming.MethodSignature; @@ -94,19 +93,16 @@ o.enableClassStaticizer = false; }; - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public R8KotlinPropertiesTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java b/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java index e3ef668..c9fd417 100644 --- a/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
@@ -3,12 +3,9 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.kotlin; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; import static org.junit.Assert.assertEquals; -import static org.junit.Assume.assumeTrue; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.naming.MemberNaming.MethodSignature; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; @@ -24,19 +21,16 @@ private static final String FOLDER = "non_null"; private static final String STRING = "java.lang.String"; - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public SimplifyIfNotNullKotlinTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test @@ -69,8 +63,6 @@ @Test public void test_example2() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72) || allowAccessModification); final TestKotlinClass ex2 = new TestKotlinClass("non_null.Example2Kt"); final MethodSignature testMethodSignature = new MethodSignature("aOrDefault", STRING, ImmutableList.of(STRING, STRING));
diff --git a/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java b/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java index 70ae682..1241446 100644 --- a/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java +++ b/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java
@@ -4,9 +4,7 @@ package com.android.tools.r8.kotlin.coroutines; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; import static org.junit.Assert.assertEquals; -import static org.junit.Assume.assumeTrue; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; @@ -67,15 +65,11 @@ @Test public void runKotlinxCoroutinesTests_smoke() throws Exception { - // TODO(b/179860018): Make run for 1.4.20 - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); runTestsInJar(compileTestSources(BASE_LIBRARY), BASE_LIBRARY); } @Test public void runKotlinxCoroutinesTests_r8() throws Exception { - // TODO(b/179860018): Make run for 1.4.20 - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); Path baseJar = testForR8(parameters.getBackend()) .addProgramFiles(BASE_LIBRARY)
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java index 9d9f42a..655ddb5 100644 --- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java
@@ -6,12 +6,12 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assume.assumeTrue; -import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; import com.android.tools.r8.TestRuntime; import com.android.tools.r8.TestRuntime.CfRuntime; import com.android.tools.r8.ToolHelper; +import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import com.android.tools.r8.utils.DescriptorUtils; import java.nio.file.Path; import java.util.Collection; @@ -20,7 +20,7 @@ import org.junit.runners.Parameterized; @RunWith(Parameterized.class) -public class KotlinLambdaMergerValidationTest extends KotlinTestBase { +public class KotlinLambdaMergerValidationTest extends AbstractR8KotlinTestBase { private final TestParameters parameters; @@ -33,7 +33,7 @@ public KotlinLambdaMergerValidationTest( TestParameters parameters, KotlinTestParameters kotlinParameters) { - super(kotlinParameters); + super(kotlinParameters, false); this.parameters = parameters; }
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java index 7aaeade..61f417e 100644 --- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
@@ -6,10 +6,10 @@ import static org.hamcrest.CoreMatchers.equalTo; import com.android.tools.r8.CompilationMode; -import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; import com.android.tools.r8.ToolHelper.KotlinTargetVersion; +import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -17,7 +17,7 @@ import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) -public class KotlinLambdaMergingDebugTest extends KotlinTestBase { +public class KotlinLambdaMergingDebugTest extends AbstractR8KotlinTestBase { private final TestParameters parameters; private static final String FOLDER = "reprocess_merged_lambdas_kstyle";
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java index 96135ae..8258582 100644 --- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java
@@ -4,7 +4,6 @@ package com.android.tools.r8.kotlin.lambda; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.TestShrinkerBuilder; import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import com.android.tools.r8.utils.BooleanUtils; @@ -16,19 +15,16 @@ @RunWith(Parameterized.class) public class KotlinLambdaMergingWithReprocessingTest extends AbstractR8KotlinTestBase { - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public KotlinLambdaMergingWithReprocessingTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java index 2700f5e..087a81b 100644 --- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java
@@ -4,7 +4,6 @@ package com.android.tools.r8.kotlin.lambda; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import com.android.tools.r8.utils.BooleanUtils; import java.util.Collection; @@ -15,19 +14,16 @@ @RunWith(Parameterized.class) public class KotlinLambdaMergingWithSmallInliningBudgetTest extends AbstractR8KotlinTestBase { - @Parameterized.Parameters(name = "{0}, {1}, allowAccessModification: {2}") + @Parameterized.Parameters(name = "{0}, allowAccessModification: {1}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values()); } public KotlinLambdaMergingWithSmallInliningBudgetTest( - TestParameters parameters, - KotlinTestParameters kotlinParameters, - boolean allowAccessModification) { - super(parameters, kotlinParameters, allowAccessModification); + KotlinTestParameters kotlinParameters, boolean allowAccessModification) { + super(kotlinParameters, allowAccessModification); } @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java index 67bb203..79cef64 100644 --- a/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java +++ b/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java
@@ -10,12 +10,12 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; -import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; import com.android.tools.r8.TestRuntime; import com.android.tools.r8.TestRuntime.CfRuntime; import com.android.tools.r8.ToolHelper; +import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import com.android.tools.r8.utils.BooleanUtils; import com.android.tools.r8.utils.DescriptorUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; @@ -29,7 +29,7 @@ import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) -public class LambdaSplitByCodeCorrectnessTest extends KotlinTestBase { +public class LambdaSplitByCodeCorrectnessTest extends AbstractR8KotlinTestBase { private final TestParameters parameters; private final boolean splitGroup;
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 e9324e9..3765187 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
@@ -5,14 +5,11 @@ import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static junit.framework.TestCase.assertNotNull; -import static org.hamcrest.CoreMatchers.anyOf; -import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertNull; -import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestCompileResult; +import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import com.android.tools.r8.kotlin.KotlinMetadataWriter; import com.android.tools.r8.utils.DescriptorUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; @@ -22,7 +19,7 @@ import kotlinx.metadata.jvm.KotlinClassHeader; import kotlinx.metadata.jvm.KotlinClassMetadata; -public abstract class KotlinMetadataTestBase extends KotlinTestBase { +public abstract class KotlinMetadataTestBase extends AbstractR8KotlinTestBase { public KotlinMetadataTestBase(KotlinTestParameters kotlinParameters) { super(kotlinParameters); @@ -67,12 +64,4 @@ TestCase.assertEquals(expected, actual); } } - - public static void verifyExpectedWarningsFromKotlinReflectAndStdLib( - TestCompileResult<?, ?> compileResult) { - compileResult.assertAllWarningMessagesMatch( - anyOf( - equalTo("Resource 'META-INF/MANIFEST.MF' already exists."), - 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 7afbd44..8111567 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
@@ -3,10 +3,10 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.kotlin.metadata; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_4_20; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndNotRenamed; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed; +import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; @@ -60,9 +60,9 @@ .addDontWarnJetBrainsAnnotations() .allowDiagnosticWarningMessages() .setMinApi(parameters.getApiLevel()) - .allowUnusedDontWarnKotlinReflectJvmInternal(kotlinc.is(KOTLINC_1_4_20)) .compile() - .apply(KotlinMetadataTestBase::verifyExpectedWarningsFromKotlinReflectAndStdLib) + .assertAllWarningMessagesMatch( + equalTo("Resource 'META-INF/MANIFEST.MF' already exists.")) .run(parameters.getRuntime(), mainClassName); CodeInspector inspector = result.inspector(); ClassSubject clazz = inspector.clazz(mainClassName);
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 fcb64b6..3732458 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
@@ -4,7 +4,7 @@ package com.android.tools.r8.kotlin.reflection; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_4_20; +import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assume.assumeTrue; import com.android.tools.r8.DexIndexedConsumer.ArchiveConsumer; @@ -12,7 +12,6 @@ import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; import com.android.tools.r8.ToolHelper; -import com.android.tools.r8.kotlin.metadata.KotlinMetadataTestBase; import com.android.tools.r8.shaking.ProguardKeepAttributes; import com.android.tools.r8.utils.DescriptorUtils; import com.android.tools.r8.utils.FileUtils; @@ -92,10 +91,9 @@ .addKeepAllClassesRule() .addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS) .allowDiagnosticWarningMessages() - .allowUnusedDontWarnKotlinReflectJvmInternal(kotlinc.is(KOTLINC_1_4_20)) .compile() .writeToZip(foo.toPath()) - .apply(KotlinMetadataTestBase::verifyExpectedWarningsFromKotlinReflectAndStdLib) + .assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists.")) .run(parameters.getRuntime(), PKG + ".SimpleReflectKt") .assertSuccessWithOutputLines(EXPECTED_OUTPUT); }
diff --git a/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java b/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java index 2a19802..2c3f2bb 100644 --- a/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java +++ b/src/test/java/com/android/tools/r8/naming/AbstractR8KotlinNamingTestBase.java
@@ -8,7 +8,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import com.android.tools.r8.KotlinTestParameters; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase; import com.android.tools.r8.utils.codeinspector.ClassSubject; import com.android.tools.r8.utils.codeinspector.CodeInspector; @@ -20,11 +19,10 @@ protected final boolean minification; AbstractR8KotlinNamingTestBase( - TestParameters parameters, KotlinTestParameters kotlinParameters, boolean allowAccessModification, boolean minification) { - super(parameters, kotlinParameters, allowAccessModification); + super(kotlinParameters, allowAccessModification); this.minification = minification; }
diff --git a/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java b/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java index 3aff7c9..5d9e78b 100644 --- a/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java +++ b/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
@@ -3,18 +3,15 @@ // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.naming; -import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72; import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import static org.junit.Assume.assumeTrue; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.SingleTestRunResult; import com.android.tools.r8.TestCompileResult; -import com.android.tools.r8.TestParameters; import com.android.tools.r8.graph.DexMethod; import com.android.tools.r8.graph.DexType; import com.android.tools.r8.kotlin.TestKotlinClass; @@ -40,21 +37,19 @@ public class KotlinIntrinsicsIdentifierTest extends AbstractR8KotlinNamingTestBase { private static final String FOLDER = "intrinsics_identifiers"; - @Parameters(name = "{0}, {1}, allowAccessModification: {2}, minification: {3}") + @Parameters(name = "{0}, allowAccessModification: {1}, minification: {2}") public static Collection<Object[]> data() { return buildParameters( - getTestParameters().withAllRuntimesAndApiLevels().build(), getKotlinTestParameters().withAllCompilersAndTargetVersions().build(), BooleanUtils.values(), BooleanUtils.values()); } public KotlinIntrinsicsIdentifierTest( - TestParameters parameters, KotlinTestParameters kotlinParameters, boolean allowAccessModification, boolean minification) { - super(parameters, kotlinParameters, allowAccessModification, minification); + super(kotlinParameters, allowAccessModification, minification); } private static final KotlinCompileMemoizer compiledJars = @@ -63,8 +58,6 @@ @Test public void test_example1() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); TestKotlinClass ex1 = new TestKotlinClass("intrinsics_identifiers.Example1Kt"); String targetClassName = "ToBeRenamedClass"; String targetFieldName = "toBeRenamedField"; @@ -74,8 +67,6 @@ @Test public void test_example2() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); TestKotlinClass ex2 = new TestKotlinClass("intrinsics_identifiers.Example2Kt"); String targetClassName = "AnotherClass"; String targetFieldName = "anotherField"; @@ -85,8 +76,6 @@ @Test public void test_example3() throws Exception { - // TODO(b/179866251): Update tests. - assumeTrue(kotlinc.is(KOTLINC_1_3_72)); TestKotlinClass ex3 = new TestKotlinClass("intrinsics_identifiers.Example3Kt"); String mainClassName = ex3.getClassName(); TestCompileResult<?, ?> result =
diff --git a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java index b16dc35..2479dce 100644 --- a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java +++ b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
@@ -12,10 +12,9 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.StringContains.containsString; -import static org.junit.Assume.assumeTrue; +import com.android.tools.r8.CompilationFailedException; import com.android.tools.r8.CompilationMode; -import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion; import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; @@ -29,6 +28,7 @@ import java.nio.file.Path; import java.util.Collection; import java.util.List; +import java.util.concurrent.ExecutionException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -42,7 +42,7 @@ private final TestParameters parameters; - @Parameters(name = "{0}, target: {1}") + @Parameters(name = "{0}, {1}") public static List<Object[]> data() { // TODO(b/141817471): Extend with compilation modes. return buildParameters( @@ -69,9 +69,7 @@ } @Test - public void testRuntime() throws Exception { - // TODO(b/179666509): SMAP has changed. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); + public void testRuntime() throws ExecutionException, CompilationFailedException, IOException { testForRuntime(parameters) .addProgramFiles(compilationResults.getForConfiguration(kotlinc, targetVersion)) .addRunClasspathFiles(buildOnDexRuntime(parameters, ToolHelper.getKotlinStdlibJar(kotlinc))) @@ -83,9 +81,8 @@ } @Test - public void testRetraceKotlinInlineStaticFunction() throws Exception { - // TODO(b/179666509): SMAP has changed. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); + public void testRetraceKotlinInlineStaticFunction() + throws ExecutionException, CompilationFailedException, IOException { Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion); CodeInspector kotlinInspector = new CodeInspector(kotlinSources); testForR8(parameters.getBackend())
diff --git a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java index ffc5515..945b732 100644 --- a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java +++ b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
@@ -13,10 +13,9 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.StringContains.containsString; -import static org.junit.Assume.assumeTrue; +import com.android.tools.r8.CompilationFailedException; import com.android.tools.r8.CompilationMode; -import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion; import com.android.tools.r8.KotlinTestBase; import com.android.tools.r8.KotlinTestParameters; import com.android.tools.r8.TestParameters; @@ -31,6 +30,7 @@ import java.nio.file.Path; import java.util.Collection; import java.util.List; +import java.util.concurrent.ExecutionException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -84,7 +84,7 @@ } @Test - public void testRuntime() throws Exception { + public void testRuntime() throws ExecutionException, CompilationFailedException, IOException { testForRuntime(parameters) .addProgramFiles(compilationResults.getForConfiguration(kotlinc, targetVersion)) .addRunClasspathFiles(buildOnDexRuntime(parameters, ToolHelper.getKotlinStdlibJar(kotlinc))) @@ -94,9 +94,8 @@ } @Test - public void testRetraceKotlinInlineStaticFunction() throws Exception { - // TODO(b/179666509): SMAP has changed. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); + public void testRetraceKotlinInlineStaticFunction() + throws ExecutionException, CompilationFailedException, IOException { String main = "retrace.MainKt"; String mainFileName = "Main.kt"; Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion); @@ -126,9 +125,8 @@ } @Test - public void testRetraceKotlinInlineInstanceFunction() throws Exception { - // TODO(b/179666509): SMAP has changed. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); + public void testRetraceKotlinInlineInstanceFunction() + throws ExecutionException, CompilationFailedException, IOException { String main = "retrace.MainInstanceKt"; String mainFileName = "MainInstance.kt"; Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion); @@ -161,9 +159,8 @@ } @Test - public void testRetraceKotlinNestedInlineFunction() throws Exception { - // TODO(b/179666509): SMAP has changed. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); + public void testRetraceKotlinNestedInlineFunction() + throws ExecutionException, CompilationFailedException, IOException { String main = "retrace.MainNestedKt"; String mainFileName = "MainNested.kt"; Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion); @@ -195,9 +192,8 @@ } @Test - public void testRetraceKotlinNestedInlineFunctionOnFirstLine() throws Exception { - // TODO(b/179666509): SMAP has changed. - assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)); + public void testRetraceKotlinNestedInlineFunctionOnFirstLine() + throws ExecutionException, CompilationFailedException, IOException { String main = "retrace.MainNestedFirstLineKt"; String mainFileName = "MainNestedFirstLine.kt"; Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion);
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java index 0298ecd..2cc7c96 100644 --- a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java +++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java
@@ -161,7 +161,6 @@ b.addRunClasspathFiles(kotlinStdlibLibraryForRuntime()); }, b -> b.addProgramFiles(ToolHelper.getKotlinStdlibJar(kotlinc))) - .addClasspathFiles(ToolHelper.getKotlinAnnotationJar(kotlinc)) .addProgramFiles(compiledForAssertions.getForConfiguration(kotlinc, targetVersion)) .addKeepMainRule(testClassKt) .addKeepClassAndMembersRules(class1, class2)