Ensure JDK 11 and 15 work on Mac OS
Test: tools/test.py --no-internal --test-namespace=ir/desugar/backports
Change-Id: Ic0ff3b810b30290a48ea07225e3e85bd5df2d043
diff --git a/build.gradle b/build.gradle
index 323256b..3e3b396 100644
--- a/build.gradle
+++ b/build.gradle
@@ -566,7 +566,9 @@
if (OperatingSystem.current().isLinux()) {
options.forkOptions.javaHome = file(jdkDir + 'linux')
} else if (OperatingSystem.current().isMacOsX()) {
- options.forkOptions.javaHome = file(jdkDir + 'osx')
+ options.forkOptions.javaHome = compatibility > JavaVersion.VERSION_1_9
+ ? file(jdkDir + 'osx/Contents/Home')
+ : file(jdkDir + 'osx')
} else {
options.forkOptions.javaHome = file(jdkDir + 'windows')
}
diff --git a/src/test/java/com/android/tools/r8/TestRuntime.java b/src/test/java/com/android/tools/r8/TestRuntime.java
index 04b61c0..20bf4b8 100644
--- a/src/test/java/com/android/tools/r8/TestRuntime.java
+++ b/src/test/java/com/android/tools/r8/TestRuntime.java
@@ -83,11 +83,13 @@
return new CfRuntime(CfVm.JDK8, home);
}
- private static Path getCheckedInJdkHome(Path path) {
+ private static Path getCheckedInJdkHome(Path path, CfVm vm) {
if (ToolHelper.isLinux()) {
return path.resolve("linux");
} else if (ToolHelper.isMac()) {
- return path.resolve("osx");
+ return vm.lessThanOrEqual(CfVm.JDK9)
+ ? path.resolve("osx")
+ : path.resolve("osx/Contents/Home");
} else {
assert ToolHelper.isWindows();
return path.resolve("windows");
@@ -95,16 +97,16 @@
}
public static CfRuntime getCheckedInJdk9() {
- return new CfRuntime(CfVm.JDK9, getCheckedInJdkHome(JDK9_PATH));
+ return new CfRuntime(CfVm.JDK9, getCheckedInJdkHome(JDK9_PATH, CfVm.JDK9));
}
public static CfRuntime getCheckedInJdk11() {
- return new CfRuntime(CfVm.JDK11, getCheckedInJdkHome(JDK11_PATH));
+ return new CfRuntime(CfVm.JDK11, getCheckedInJdkHome(JDK11_PATH, CfVm.JDK11));
}
// TODO(b/169692487): Add this to 'getCheckedInCfRuntimes' when we start having support for JDK15.
public static CfRuntime getCheckedInJdk15() {
- return new CfRuntime(CfVm.JDK15, getCheckedInJdkHome(JDK15_PATH));
+ return new CfRuntime(CfVm.JDK15, getCheckedInJdkHome(JDK15_PATH, CfVm.JDK15));
}
public static List<CfRuntime> getCheckedInCfRuntimes() {