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)