Revert "Add support for tests using androidx keep annotations" This reverts commit 97a7f8da5506049016632cfeeb06e92dc1623881. Reason for revert: Breaks SanityCheck Change-Id: Ia8e83cc9f3fa6cb8f57021e1d07a6cf73dee82e3
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt index e407d6a..1f3f338 100644 --- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt +++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -1152,11 +1152,3 @@ fun Project.allInternalDependencies(): List<ThirdPartyDependency> { return allDependencies().filter { x -> x.type == DependencyType.X20 } } - -fun extractClassesPaths(prefix: String, vararg paths: String): String { - val result: MutableList<String> = ArrayList() - paths.forEach { it -> - result.addAll(it.split(File.pathSeparator).filter { it.contains("${prefix}build/classes") }) - } - return result.joinToString(File.pathSeparator) -}
diff --git a/d8_r8/main/build.gradle.kts b/d8_r8/main/build.gradle.kts index 595726d..989b99a 100644 --- a/d8_r8/main/build.gradle.kts +++ b/d8_r8/main/build.gradle.kts
@@ -3,7 +3,9 @@ // BSD-style license that can be found in the LICENSE file. import java.net.URI +import java.nio.file.Path import java.nio.file.Paths +import kotlin.io.path.exists import java.nio.file.Files.readString import net.ltgt.gradle.errorprone.errorprone import org.gradle.api.artifacts.ModuleVersionIdentifier @@ -87,9 +89,8 @@ } } -val assistantJarTask = projectTask("assistant", "jar") val keepAnnoJarTask = projectTask("keepanno", "jar") -val keepAnnoAndroidXAnnotationsJar = projectTask("keepanno", "keepAnnoAndroidXAnnotationsJar") +val assistantJarTask = projectTask("assistant", "jar") val resourceShrinkerJarTask = projectTask("resourceshrinker", "jar") val resourceShrinkerDepsTask = projectTask("resourceshrinker", "depsJar") @@ -291,10 +292,8 @@ val r8WithRelocatedDeps by registering(Exec::class) { dependsOn(depsJar) dependsOn(swissArmyKnifeWithoutLicense) - dependsOn(keepAnnoAndroidXAnnotationsJar) - val swissArmy = swissArmyKnifeWithoutLicense.get().outputs.files.singleFile - val deps = depsJar.get().outputs.files.singleFile - val androidXAnnotationsJar = keepAnnoAndroidXAnnotationsJar.outputs.files.singleFile + val swissArmy = swissArmyKnifeWithoutLicense.get().outputs.getFiles().getSingleFile() + val deps = depsJar.get().outputs.files.getSingleFile() inputs.files(listOf(swissArmy, deps)) val output = getRoot().resolveAll("build", "libs", "r8.jar") outputs.file(output) @@ -306,8 +305,6 @@ "$swissArmy", "--input", "$deps", - "--input", - "$androidXAnnotationsJar", "--output", "$output", // Add identity mapping to enforce no relocation of things already in package
diff --git a/d8_r8/test/build.gradle.kts b/d8_r8/test/build.gradle.kts index 564d0ea..3da29df 100644 --- a/d8_r8/test/build.gradle.kts +++ b/d8_r8/test/build.gradle.kts
@@ -22,7 +22,6 @@ dependencies { } val keepAnnoCompileTask = projectTask("keepanno", "compileJava") -val keepAnnoCompileKotlinTask = projectTask("keepanno", "compileKotlin") val keepAnnoSourcesTask = projectTask("keepanno", "sourcesJar") val assistantJarTask = projectTask("assistant", "jar") val mainDepsJarTask = projectTask("main", "depsJar") @@ -432,10 +431,7 @@ systemProperty( "BUILD_PROP_KEEPANNO_RUNTIME_PATH", - extractClassesPaths( - "keepanno/", - keepAnnoCompileTask.outputs.files.asPath, - keepAnnoCompileKotlinTask.outputs.files.asPath)) + keepAnnoCompileTask.getOutputs().getFiles().getAsPath().split(File.pathSeparator)[0]) systemProperty("EXAMPLES_JAVA_11_JAVAC_BUILD_DIR", getRoot().resolveAll("build", "test", "examplesJava11", "classes")) systemProperty("BUILD_PROP_R8_RUNTIME_PATH", r8LibJar)
diff --git a/d8_r8/test_modules/tests_bootstrap/build.gradle.kts b/d8_r8/test_modules/tests_bootstrap/build.gradle.kts index 18e0f2b..7b900dc 100644 --- a/d8_r8/test_modules/tests_bootstrap/build.gradle.kts +++ b/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
@@ -33,7 +33,6 @@ val keepAnnoJarTask = projectTask("keepanno", "jar") val keepAnnoCompileTask = projectTask("keepanno", "compileJava") -val keepAnnoCompileKotlinTask = projectTask("keepanno", "compileKotlin") val mainR8RelocatedTask = projectTask("main", "r8WithRelocatedDeps") val resourceShrinkerJavaCompileTask = projectTask("resourceshrinker", "compileJava") val resourceShrinkerKotlinCompileTask = projectTask("resourceshrinker", "compileKotlin") @@ -81,10 +80,7 @@ testbaseJavaCompileTask.outputs.files.getAsPath().split(File.pathSeparator)[0]) systemProperty( "BUILD_PROP_KEEPANNO_RUNTIME_PATH", - extractClassesPaths( - "keepanno/", - keepAnnoCompileTask.outputs.files.asPath, - keepAnnoCompileKotlinTask.outputs.files.asPath)) + keepAnnoCompileTask.outputs.files.getAsPath().split(File.pathSeparator)[0]) systemProperty("R8_WITH_RELOCATED_DEPS", mainR8RelocatedTask.outputs.files.singleFile) systemProperty("BUILD_PROP_R8_RUNTIME_PATH", mainR8RelocatedTask.outputs.files.singleFile) }
diff --git a/d8_r8/test_modules/tests_java_8/build.gradle.kts b/d8_r8/test_modules/tests_java_8/build.gradle.kts index 7637a41..4dfd63e 100644 --- a/d8_r8/test_modules/tests_java_8/build.gradle.kts +++ b/d8_r8/test_modules/tests_java_8/build.gradle.kts
@@ -39,7 +39,6 @@ val keepAnnoJarTask = projectTask("keepanno", "jar") val keepAnnoCompileTask = projectTask("keepanno", "compileJava") val assistantCompileTask = projectTask("assistant", "compileJava") -val keepAnnoCompileKotlinTask = projectTask("keepanno", "compileKotlin") val mainCompileTask = projectTask("main", "compileJava") val mainDepsJarTask = projectTask("main", "depsJar") val resourceShrinkerJavaCompileTask = projectTask("resourceshrinker", "compileJava") @@ -137,13 +136,11 @@ systemProperty("TEST_DATA_LOCATION", layout.buildDirectory.dir("classes/java/test").get().toString()) systemProperty("TESTBASE_DATA_LOCATION", - testbaseJavaCompileTask.outputs.files.asPath.split(File.pathSeparator)[0]) + testbaseJavaCompileTask.outputs.files.getAsPath().split(File.pathSeparator)[0]) + systemProperty( "BUILD_PROP_KEEPANNO_RUNTIME_PATH", - extractClassesPaths( - "keepanno/", - keepAnnoCompileTask.outputs.files.asPath, - keepAnnoCompileKotlinTask.outputs.files.asPath)) + keepAnnoCompileTask.outputs.files.getAsPath().split(File.pathSeparator)[0]) // This path is set when compiling examples jar task in DependenciesPlugin. systemProperty("EXAMPLES_JAVA_11_JAVAC_BUILD_DIR", getRoot().resolveAll("build", "test", "examplesJava11", "classes"))
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java index 1c65221..3598e51 100644 --- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java +++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
@@ -4,11 +4,8 @@ package com.android.tools.r8.keepanno; -import static com.android.tools.r8.R8TestBuilder.KeepAnnotationLibrary.ANDROIDX; import com.android.tools.r8.ExternalR8TestBuilder; -import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler; -import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion; import com.android.tools.r8.ProguardTestBuilder; import com.android.tools.r8.R8FullTestBuilder; import com.android.tools.r8.R8PartialTestBuilder; @@ -466,15 +463,8 @@ TemporaryFolder temp) throws IOException { super(params); - KotlinCompiler kotlinc = new KotlinCompiler(KotlinCompilerVersion.MAX_SUPPORTED_VERSION); builder = TestBase.testForProguard(KeepAnnoTestUtils.PG_VERSION, temp) - .applyIf( - keepAnnotationLibrary == ANDROIDX, - b -> - b.addDefaultRuntimeLibrary(parameters()) - .addLibraryFiles( - kotlinc.getKotlinStdlibJar(), kotlinc.getKotlinAnnotationJar())) .addProgramFiles(KeepAnnoTestUtils.getKeepAnnoLib(temp, keepAnnotationLibrary)) .setMinApi(parameters()); }
diff --git a/src/test/testbase/java/com/android/tools/r8/keepanno/KeepAnnoTestUtils.java b/src/test/testbase/java/com/android/tools/r8/keepanno/KeepAnnoTestUtils.java index 53f0924..2fc4c98 100644 --- a/src/test/testbase/java/com/android/tools/r8/keepanno/KeepAnnoTestUtils.java +++ b/src/test/testbase/java/com/android/tools/r8/keepanno/KeepAnnoTestUtils.java
@@ -43,25 +43,23 @@ TemporaryFolder temp, KeepAnnotationLibrary keepAnnotationLibrary) throws IOException { Path archive = temp.newFolder().toPath().resolve("keepanno.jar"); ArchiveConsumer consumer = new ArchiveConsumer(archive); - // TODO(b/397387189): Find a better way to locate the keep annotation classes in tests. for (Path root : ToolHelper.getBuildPropKeepAnnoRuntimePath()) { String descriptorPrefix = (keepAnnotationLibrary == ANDROIDX ? DESCRIPTOR_PREFIX : DESCRIPTOR_LEGACY_PREFIX); Path annoDir = root.resolve(descriptorPrefix.substring(1, descriptorPrefix.length() - 1)); assertTrue(Files.isDirectory(root)); - if (Files.isDirectory(annoDir)) { - try (Stream<Path> paths = Files.list(annoDir)) { - paths.forEach( - p -> { - if (FileUtils.isClassFile(p)) { - byte[] data = FileUtils.uncheckedReadAllBytes(p); - String fileName = p.getFileName().toString(); - String className = fileName.substring(0, fileName.lastIndexOf('.')); - String desc = descriptorPrefix + className + ";"; - consumer.accept(ByteDataView.of(data), desc, null); - } - }); - } + assertTrue(Files.isDirectory(annoDir)); + try (Stream<Path> paths = Files.list(annoDir)) { + paths.forEach( + p -> { + if (FileUtils.isClassFile(p)) { + byte[] data = FileUtils.uncheckedReadAllBytes(p); + String fileName = p.getFileName().toString(); + String className = fileName.substring(0, fileName.lastIndexOf('.')); + String desc = descriptorPrefix + className + ";"; + consumer.accept(ByteDataView.of(data), desc, null); + } + }); } } consumer.finished(null);