Add keep annotations as dependency of bootstrap tests
This is required now that R8 makes use of the annotations.
Bug: b/248408342
Change-Id: Ifc19a02723661868e6ad491e6983e94203f32970
diff --git a/d8_r8/test_modules/tests_bootstrap/build.gradle.kts b/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
index bf64d96..b503fd3 100644
--- a/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
+++ b/d8_r8/test_modules/tests_bootstrap/build.gradle.kts
@@ -26,9 +26,12 @@
}
val testsJava8Jar = projectTask("tests_java_8", "testJar")
+val keepAnnoJarTask = projectTask("keepanno", "jar")
+val keepAnnoCompileTask = projectTask("keepanno", "compileJava")
val mainR8RelocatedTask = projectTask("main", "r8WithRelocatedDeps")
dependencies {
+ implementation(keepAnnoJarTask.outputs.files)
implementation(files(testsJava8Jar.outputs.files.getSingleFile()))
implementation(projectTask("main", "jar").outputs.files)
implementation(Deps.asm)
@@ -70,6 +73,7 @@
dependsOn(mainR8RelocatedTask)
systemProperty("TEST_DATA_LOCATION",
layout.buildDirectory.dir("classes/java/test").get().toString())
+ systemProperty("KEEP_ANNO_JAVAC_BUILD_DIR", keepAnnoCompileTask.outputs.files.getAsPath())
systemProperty("R8_WITH_RELOCATED_DEPS", mainR8RelocatedTask.outputs.files.singleFile)
systemProperty("R8_RUNTIME_PATH", mainR8RelocatedTask.outputs.files.singleFile)
}
@@ -82,6 +86,7 @@
val depsJar by registering(Jar::class) {
dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
+ dependsOn(gradle.includedBuild("keepanno").task(":jar"))
if (!project.hasProperty("no_internal")) {
dependsOn(gradle.includedBuild("shared").task(":downloadDepsInternal"))
}
diff --git a/d8_r8/test_modules/tests_bootstrap/settings.gradle.kts b/d8_r8/test_modules/tests_bootstrap/settings.gradle.kts
index b4fb012..aeb53ad 100644
--- a/d8_r8/test_modules/tests_bootstrap/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_bootstrap/settings.gradle.kts
@@ -30,3 +30,4 @@
includeBuild(root.resolve("shared"))
includeBuild(root.resolve("main"))
includeBuild(root.resolve("test_modules").resolve("tests_java_8"))
+includeBuild(root.resolve("keepanno"))
diff --git a/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java b/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
index a6c99f8..15f4346 100644
--- a/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
+++ b/src/test/bootstrap/com/android/tools/r8/bootstrap/BootstrapCurrentEqualityTest.java
@@ -114,6 +114,7 @@
.addProgramFiles(ToolHelper.getR8WithRelocatedDeps())
.addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
.addKeepRuleFiles(MAIN_KEEP)
+ .enableExperimentalKeepAnnotations()
// TODO(b/176783536, b/270105162): Get a hold of dependencies in new gradle setup.
.applyIf(ToolHelper.isNewGradleSetup(), R8TestBuilder::allowUnusedDontWarnPatterns)
.compile()
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index d55e5c5..b24f608 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -15,7 +15,6 @@
import com.android.tools.r8.dexsplitter.SplitterTestBase.SplitRunner;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.experimental.graphinfo.GraphConsumer;
-import com.android.tools.r8.keepanno.KeepEdgeAnnotationsTest;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.origin.PathOrigin;
import com.android.tools.r8.profile.art.ArtProfileConsumer;
@@ -754,7 +753,7 @@
public T enableExperimentalKeepAnnotations() {
builder.addClasspathResourceProvider(
- DirectoryClassFileProvider.fromDirectory(KeepEdgeAnnotationsTest.getKeepAnnoPath()));
+ DirectoryClassFileProvider.fromDirectory(ToolHelper.getKeepAnnoPath()));
builder.setEnableExperimentalKeepAnnotations(true);
return self();
}
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index ca5f03b..74b7fe6 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -207,6 +207,16 @@
}
}
+ public static Path getKeepAnnoPath() {
+ // TODO(b/270105162): This changes when new gradle setup is default.
+ if (isNewGradleSetup()) {
+ return Paths.get(
+ System.getProperty("KEEP_ANNO_JAVAC_BUILD_DIR").split(File.pathSeparator)[0]);
+ } else {
+ return Paths.get(BUILD_DIR, "classes", "java", "keepanno");
+ }
+ }
+
public static final Path CHECKED_IN_R8_17_WITH_DEPS =
Paths.get(THIRD_PARTY_DIR).resolve("r8").resolve("r8_with_deps_17.jar");
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
index 5c22e9f..fd8154f 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
@@ -34,7 +34,6 @@
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.google.common.collect.ImmutableList;
-import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -68,16 +67,6 @@
}
}
- public static Path getKeepAnnoPath() {
- // TODO(b/270105162): This changes when new gradle setup is default.
- if (ToolHelper.isNewGradleSetup()) {
- return Paths.get(
- System.getProperty("KEEP_ANNO_JAVAC_BUILD_DIR").split(File.pathSeparator)[0]);
- } else {
- return Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "keepanno");
- }
- }
-
private static List<Class<?>> getTestClasses() {
return ImmutableList.of(
KeepClassAndDefaultConstructorSource.class,
@@ -112,7 +101,7 @@
Path out =
JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
.addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
- .addClasspathFiles(getKeepAnnoPath())
+ .addClasspathFiles(ToolHelper.getKeepAnnoPath())
.addClassNames(Collections.singletonList(typeName(source)))
.addClasspathFiles(Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "test"))
.addClasspathFiles(ToolHelper.getR8WithRelocatedDeps())
@@ -137,7 +126,7 @@
JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
.addSourceFiles(ToolHelper.getSourceFileForTestClass(source))
.addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
- .addClasspathFiles(getKeepAnnoPath())
+ .addClasspathFiles(ToolHelper.getKeepAnnoPath())
.addClasspathFiles(ToolHelper.getDeps())
.compile();
testForJvm(parameters)