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