Set an environment property pointing to keepanno in new gradle setup

Bug: b/270105162
Change-Id: Ie7cf61419d4c5489c50b0a3560376304aecb0bb9
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt b/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt
index 308bf71..4ca414d 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt
@@ -72,7 +72,7 @@
       val userDefinedCoresPerFork = System.getenv("R8_GRADLE_CORES_PER_FORK")
       val processors = Runtime.getRuntime().availableProcessors()
       // See https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html.
-      if (userDefinedCoresPerFork != null) {
+      if (!userDefinedCoresPerFork.isNullOrEmpty()) {
         test.maxParallelForks = processors.div(userDefinedCoresPerFork.toInt())
       } else {
         // On work machines this seems to give the best test execution time (without freezing).
diff --git a/d8_r8/main/build.gradle.kts b/d8_r8/main/build.gradle.kts
index c829d31..207f87e 100644
--- a/d8_r8/main/build.gradle.kts
+++ b/d8_r8/main/build.gradle.kts
@@ -99,7 +99,7 @@
     val swissArmy = swissArmyKnife.get().outputs.getFiles().getSingleFile()
     val deps = depsJar.get().outputs.files.getSingleFile()
     inputs.files(listOf(swissArmy, deps))
-    val output = file(Paths.get("build", "libs", "r8-deps-relocated.jar"))
+    val output = getRoot().resolveAll("build", "libs", "r8-deps-relocated.jar")
     outputs.file(output)
     commandLine = baseCompilerCommandLine(
       swissArmy,
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 2e6a3f1..f8ef982 100644
--- a/d8_r8/test_modules/tests_java_8/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_8/build.gradle.kts
@@ -23,10 +23,13 @@
   targetCompatibility = JavaVersion.VERSION_1_8
 }
 
+// If we depend on keepanno by referencing the project source outputs we get an error regarding
+// incompatible java class file version. By depending on the jar we circumvent that.
+val keepAnnoJarTask = projectTask("keepanno", "jar")
+val keepAnnoCompileTask = projectTask("keepanno", "compileJava")
+
 dependencies {
-  // If we depend on keepanno by referencing the project source outputs we get an error regarding
-  // incompatible java class file version. By depending on the jar we circumvent that.
-  implementation(projectTask("keepanno", "jar").outputs.files)
+  implementation(keepAnnoJarTask.outputs.files)
   implementation(projectTask("main", "jar").outputs.files)
   implementation(projectTask("resourceshrinker", "jar").outputs.files)
   implementation(Deps.asm)
@@ -161,21 +164,7 @@
       dependsOn(thirdPartyRuntimeInternalDependenciesTask)
     }
     dependsOn(*sourceSetDependenciesTasks)
-    println("NOTE: Number of processors " + Runtime.getRuntime().availableProcessors())
-    val userDefinedCoresPerFork = System.getenv("R8_GRADLE_CORES_PER_FORK")
-    val processors = Runtime.getRuntime().availableProcessors()
-    // See https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html.
-    if (!userDefinedCoresPerFork.isNullOrEmpty()) {
-      maxParallelForks = processors / userDefinedCoresPerFork.toInt()
-    } else {
-      // On normal work machines this seems to give the best test execution time (without freezing)
-      maxParallelForks = processors / 3
-      // On low cpu count machines (bots) we under subscribe, so increase the count.
-      if (processors == 8) {
-        maxParallelForks = 3
-      }
-    }
-    println("NOTE: Max parallel forks " + maxParallelForks)
+    environment.put("KEEP_ANNO_COMPILED_OUTPUT", keepAnnoCompileTask.outputs.files.getAsPath())
   }
 
   val testJar by registering(Jar::class) {
diff --git a/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java b/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
index 444d14b..02f0063 100644
--- a/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/ExternalR8TestBuilder.java
@@ -125,7 +125,7 @@
 
       String classPath =
           addR8ExternalDeps
-              ? r8jar.toAbsolutePath().toString() + CLASSPATH_SEPARATOR + ToolHelper.DEPS
+              ? r8jar.toAbsolutePath() + CLASSPATH_SEPARATOR + ToolHelper.DEPS
               : r8jar.toAbsolutePath().toString();
 
       List<String> command = new ArrayList<>();
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index 664ce2e..8cd7133 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -749,7 +749,7 @@
 
   public T enableExperimentalKeepAnnotations() {
     builder.addClasspathResourceProvider(
-        DirectoryClassFileProvider.fromDirectory(KeepEdgeAnnotationsTest.KEEP_ANNO_PATH));
+        DirectoryClassFileProvider.fromDirectory(KeepEdgeAnnotationsTest.getKeepAnnoPath()));
     builder.setEnableExperimentalKeepAnnotations(true);
     return self();
   }
diff --git a/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java b/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
index cceb957..00dcb1b 100644
--- a/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
+++ b/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
@@ -142,7 +142,7 @@
   public void testDumpToDirectorySystemProperty() throws Exception {
     Path dumpDir = temp.newFolder().toPath();
     testForExternalR8(parameters.getBackend(), parameters.getRuntime())
-        .addJvmFlag("-Dcom.android.tools.r8.dumpinputtodirectory=" + dumpDir.toString())
+        .addJvmFlag("-Dcom.android.tools.r8.dumpinputtodirectory=" + dumpDir)
         .addProgramClasses(TestClass.class)
         // Setting a directory will allow compilation to continue.
         // Ensure the compilation and run can actually succeed.
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 e8696b7..f64dade 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepEdgeAnnotationsTest.java
@@ -68,8 +68,14 @@
     }
   }
 
-  public static final Path KEEP_ANNO_PATH =
-      Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "keepanno");
+  public static Path getKeepAnnoPath() {
+    // TODO(b/270105162): This changes when new gradle setup is default.
+    if (ToolHelper.isNewGradleSetup()) {
+      return Paths.get(System.getenv("KEEP_ANNO_COMPILED_OUTPUT").split(":")[0]);
+    } else {
+      return Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "keepanno");
+    }
+  }
 
   private static List<Class<?>> getTestClasses() {
     return ImmutableList.of(
@@ -105,7 +111,7 @@
     Path out =
         JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
             .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
-            .addClasspathFiles(KEEP_ANNO_PATH)
+            .addClasspathFiles(getKeepAnnoPath())
             .addClassNames(Collections.singletonList(typeName(source)))
             .addClasspathFiles(Paths.get(ToolHelper.BUILD_DIR, "classes", "java", "test"))
             .addClasspathFiles(ToolHelper.DEPS)
@@ -130,7 +136,7 @@
         JavaCompilerTool.create(parameters.getRuntime().asCf(), temp)
             .addSourceFiles(ToolHelper.getSourceFileForTestClass(source))
             .addAnnotationProcessors(typeName(KeepEdgeProcessor.class))
-            .addClasspathFiles(KEEP_ANNO_PATH)
+            .addClasspathFiles(getKeepAnnoPath())
             .addClasspathFiles(ToolHelper.DEPS)
             .compile();
     testForJvm(parameters)
diff --git a/tools/run-jdwp-tests.py b/tools/run-jdwp-tests.py
index 28da012..e241fb4 100755
--- a/tools/run-jdwp-tests.py
+++ b/tools/run-jdwp-tests.py
@@ -71,12 +71,12 @@
   lib_dir = get_lib_dir(version)
   android_data = os.path.join(utils.REPO_ROOT, 'build', 'tmp', version)
   if not os.path.isdir(android_data):
-    os.mkdir(android_data)
+    os.makedirs(android_data)
   if version == '4.4.4':
     # Dalvik expects that the dalvik-cache dir already exists.
     dalvik_cache_dir = os.path.join(android_data, 'dalvik-cache')
     if not os.path.isdir(dalvik_cache_dir):
-      os.mkdir(dalvik_cache_dir)
+      os.makedirs(dalvik_cache_dir)
   os.environ['ANDROID_DATA'] = android_data
   os.environ['ANDROID_ROOT'] = art_dir
   os.environ['LD_LIBRARY_PATH'] = lib_dir