Allow to test JDK11 desugared library from IntelliJ
Bug: 182463100
Change-Id: Ib2dc658f69600c771d059bcb3c70c618431ff6b9
diff --git a/.gitignore b/.gitignore
index 8534e4c..28f7415 100644
--- a/.gitignore
+++ b/.gitignore
@@ -111,6 +111,8 @@
third_party/nest/*
third_party/openjdk/desugar_jdk_libs
third_party/openjdk/desugar_jdk_libs.tar.gz
+third_party/openjdk/desugar_jdk_libs_11
+third_party/openjdk/desugar_jdk_libs_11.tar.gz
third_party/openjdk/jdk-15/linux
third_party/openjdk/jdk-15/linux.tar.gz
third_party/openjdk/jdk-15/osx
diff --git a/build.gradle b/build.gradle
index 3e3b396..2e908a5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -329,6 +329,7 @@
"kotlinx-coroutines-1.3.6",
"openjdk/openjdk-rt-1.8",
"openjdk/desugar_jdk_libs",
+ "openjdk/desugar_jdk_libs_11",
"openjdk/jdk-11-test",
"proguard/proguard5.2.1",
"proguard/proguard6.0.1",
@@ -999,6 +1000,16 @@
])
}
+task buildDesugaredLibrary(type: Exec) {
+ def outputDir = "build/libs"
+ def script = "tools/create_jctf_tests.py"
+ inputs.file script
+ outputs.dir outputDir
+ dependsOn downloadDeps
+ commandLine "python", script
+ workingDir = projectDir
+}
+
task generateR8LibKeepRules(type: Exec) {
doFirst {
// TODO(b/154785341): We should remove this.
diff --git a/src/test/java/com/android/tools/r8/BackportedMethodListTest.java b/src/test/java/com/android/tools/r8/BackportedMethodListTest.java
index bb344d7..4ffaaa7 100644
--- a/src/test/java/com/android/tools/r8/BackportedMethodListTest.java
+++ b/src/test/java/com/android/tools/r8/BackportedMethodListTest.java
@@ -88,7 +88,7 @@
private void addLibraryDesugaring(BackportedMethodListCommand.Builder builder) {
builder
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P.getLevel()));
}
@@ -143,7 +143,7 @@
BackportedMethodList.run(
BackportedMethodListCommand.builder()
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setConsumer(new ListStringConsumer())
.build());
fail("Expected failure");
diff --git a/src/test/java/com/android/tools/r8/L8CommandTest.java b/src/test/java/com/android/tools/r8/L8CommandTest.java
index bb32740..b7e2154 100644
--- a/src/test/java/com/android/tools/r8/L8CommandTest.java
+++ b/src/test/java/com/android/tools/r8/L8CommandTest.java
@@ -58,7 +58,7 @@
L8Command.builder()
.setProgramConsumer(DexIndexedConsumer.emptyConsumer())
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.build());
}
@@ -79,7 +79,7 @@
.addProgramFiles(ToolHelper.getDesugarJDKLibs())
.setMinApiLevel(20)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setOutput(output, OutputMode.DexIndexed)
.build());
assertMarkersMatch(
@@ -96,7 +96,7 @@
.addProgramFiles(ToolHelper.getDesugarJDKLibs())
.setMinApiLevel(20)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setOutput(output, OutputMode.ClassFile)
.build());
assertMarkersMatch(ExtractMarker.extractMarkerFromDexFile(output), markerTool(Tool.L8));
@@ -113,7 +113,7 @@
"--min-api",
"20",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
"--output",
output.toString());
L8.run(l8Command);
@@ -134,7 +134,7 @@
"--min-api",
"20",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
"--output",
output.toString(),
"--classfile");
@@ -150,7 +150,7 @@
parse(
diagnostics,
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
"--pg-conf",
pgconf.toString());
}
@@ -164,7 +164,7 @@
parse(
diagnostics,
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
"--pg-conf",
pgconf.toString(),
"--classfile");
@@ -182,7 +182,7 @@
parse(
diagnostics,
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
"--pg-conf");
fail("Expected parse error");
} catch (CompilationFailedException e) {
@@ -236,7 +236,7 @@
prepareBuilder(diagnostics)
.setProgramConsumer(programConsumer)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.addProguardConfiguration(keepRules, Origin.unknown());
assertTrue(builder.isShrinking());
assertNotNull(builder.build().getR8Command());
@@ -270,7 +270,7 @@
prepareBuilder(diagnostics)
.setProgramConsumer(programConsumer)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.addProguardConfigurationFiles(keepRuleFile);
assertTrue(builder1.isShrinking());
assertNotNull(builder1.build().getR8Command());
@@ -281,7 +281,7 @@
prepareBuilder(new TestDiagnosticMessagesImpl())
.setProgramConsumer(DexIndexedConsumer.emptyConsumer())
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.addProguardConfigurationFiles(keepRuleFiles);
assertTrue(builder2.isShrinking());
assertNotNull(builder2.build().getR8Command());
@@ -308,7 +308,7 @@
@Test
public void desugaredLibrary() throws CompilationFailedException {
L8Command l8Command =
- parse("--desugared-lib", ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString());
+ parse("--desugared-lib", ToolHelper.getDesugarLibJsonForTesting().toString());
assertFalse(
l8Command.getInternalOptions().desugaredLibraryConfiguration.getRewritePrefix().isEmpty());
}
@@ -337,21 +337,21 @@
parse(
"--force-enable-assertions",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
AssertionTransformation.ENABLE);
checkSingleForceAllAssertion(
parse(
"--force-disable-assertions",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
AssertionTransformation.DISABLE);
checkSingleForceAllAssertion(
parse(
"--force-passthrough-assertions",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
AssertionTransformation.PASSTHROUGH);
checkSingleForceClassAndPackageAssertion(
@@ -359,7 +359,7 @@
"--force-enable-assertions:ClassName",
"--force-enable-assertions:PackageName...",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
AssertionTransformation.ENABLE);
checkSingleForceClassAndPackageAssertion(
@@ -367,7 +367,7 @@
"--force-disable-assertions:ClassName",
"--force-disable-assertions:PackageName...",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
AssertionTransformation.DISABLE);
checkSingleForceClassAndPackageAssertion(
@@ -375,7 +375,7 @@
"--force-passthrough-assertions:ClassName",
"--force-passthrough-assertions:PackageName...",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
AssertionTransformation.PASSTHROUGH);
}
@@ -384,7 +384,7 @@
public void numThreadsOption() throws Exception {
assertEquals(
ThreadUtils.NOT_SPECIFIED,
- parse("--desugared-lib", ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ parse("--desugared-lib", ToolHelper.getDesugarLibJsonForTesting().toString())
.getThreadCount());
assertEquals(
1,
@@ -392,7 +392,7 @@
"--thread-count",
"1",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getThreadCount());
assertEquals(
2,
@@ -400,7 +400,7 @@
"--thread-count",
"2",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getThreadCount());
assertEquals(
10,
@@ -408,7 +408,7 @@
"--thread-count",
"10",
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString())
+ ToolHelper.getDesugarLibJsonForTesting().toString())
.getThreadCount());
}
@@ -423,7 +423,7 @@
"--thread-count",
value,
"--desugared-lib",
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString()));
+ ToolHelper.getDesugarLibJsonForTesting().toString()));
fail("Expected failure");
} catch (CompilationFailedException e) {
// Expected.
@@ -439,7 +439,7 @@
@Override
String[] requiredArgsForTest() {
- return new String[] {"--desugared-lib", ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString()};
+ return new String[] {"--desugared-lib", ToolHelper.getDesugarLibJsonForTesting().toString()};
}
@Override
diff --git a/src/test/java/com/android/tools/r8/MarkersTest.java b/src/test/java/com/android/tools/r8/MarkersTest.java
index 1a7c92a..2ab8a16 100644
--- a/src/test/java/com/android/tools/r8/MarkersTest.java
+++ b/src/test/java/com/android/tools/r8/MarkersTest.java
@@ -66,7 +66,7 @@
.setMinApiLevel(apiLevel.getLevel())
.setMode(compilationMode)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setOutput(output, OutputMode.DexIndexed);
if (shrinkDesugaredLibrary) {
builder.addProguardConfiguration(ImmutableList.of("-keep class * { *; }"), Origin.unknown());
@@ -75,7 +75,7 @@
Collection<Marker> markers = ExtractMarker.extractMarkerFromDexFile(output);
String version =
new JsonParser()
- .parse(FileUtils.readTextFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING, Charsets.UTF_8))
+ .parse(FileUtils.readTextFile(ToolHelper.getDesugarLibJsonForTesting(), Charsets.UTF_8))
.getAsJsonObject()
.get("version")
.getAsString();
diff --git a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
index e9cd5ff..a6c4924 100644
--- a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -429,7 +429,7 @@
AndroidApiLevel minApiLevel, KeepRuleConsumer keepRuleConsumer) {
assert minApiLevel.getLevel() < AndroidApiLevel.O.getLevel();
builder.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING));
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()));
// TODO(b/158543446): This should not be setting an implicit library file. Doing so causes
// inconsistent library setup depending on the api level and makes tests hard to read and
// reason about.
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 9d0e9b5..18037be 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -133,9 +133,6 @@
public static final String DEFAULT_PROGUARD_MAP_FILE = "proguard.map";
public static final String JAVA_8_RUNTIME = "third_party/openjdk/openjdk-rt-1.8/rt.jar";
- public static final String DESUGAR_JDK_LIBS =
- System.getProperty(
- "desugar_jdk_libs", "third_party/openjdk/desugar_jdk_libs/desugar_jdk_libs.jar");
public static final String CORE_LAMBDA_STUBS =
"third_party/core-lambda-stubs/core-lambda-stubs.jar";
public static final String JSR223_RI_JAR = "third_party/jsr223-api-1.0/jsr223-api-1.0.jar";
@@ -180,12 +177,24 @@
public static final Path DESUGAR_LIB_CONVERSIONS =
Paths.get(LIBS_DIR, "library_desugar_conversions.zip");
- public static final String DESUGAR_LIB_JSON_DIR =
- System.getProperty("desugar_jdk_json_dir", "src/library_desugar");
- public static final Path DESUGAR_LIB_JSON_FOR_TESTING =
- Paths.get(DESUGAR_LIB_JSON_DIR, "desugar_jdk_libs.json");
- public static final Path DESUGAR_LIB_JSON_FOR_TESTING_ALTERNATIVE_3 =
- Paths.get(DESUGAR_LIB_JSON_DIR, "desugar_jdk_libs_alternative_3.json");
+
+ public static Path getDesugarJDKLibs() {
+ return Paths.get(
+ System.getProperty(
+ "desugar_jdk_libs", "third_party/openjdk/desugar_jdk_libs/desugar_jdk_libs.jar"));
+ }
+
+ private static String getDesugarLibraryJsonDir() {
+ return System.getProperty("desugar_jdk_json_dir", "src/library_desugar");
+ }
+
+ public static Path getDesugarLibJsonForTesting() {
+ return Paths.get(getDesugarLibraryJsonDir(), "desugar_jdk_libs.json");
+ }
+
+ public static Path getDesugarLibJsonForTestingAlternative3() {
+ return Paths.get(getDesugarLibraryJsonDir(), "desugar_jdk_libs_alternative_3.json");
+ }
public static boolean isLocalDevelopment() {
return System.getProperty("local_development", "0").equals("1");
@@ -758,10 +767,6 @@
return Paths.get(JAVA_8_RUNTIME);
}
- public static Path getDesugarJDKLibs() {
- return Paths.get(DESUGAR_JDK_LIBS);
- }
-
public static Path getCoreLambdaStubs() {
return Paths.get(CORE_LAMBDA_STUBS);
}
diff --git a/src/test/java/com/android/tools/r8/desugar/InvokeSuperToRewrittenDefaultMethodTest.java b/src/test/java/com/android/tools/r8/desugar/InvokeSuperToRewrittenDefaultMethodTest.java
index 93e46d0..5aa2894 100644
--- a/src/test/java/com/android/tools/r8/desugar/InvokeSuperToRewrittenDefaultMethodTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/InvokeSuperToRewrittenDefaultMethodTest.java
@@ -76,7 +76,7 @@
// TODO(b/158543446): Remove this once enableCoreLibraryDesugaring is fixed.
b.getBuilder()
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING));
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()));
} else {
// TODO(b/158543446): Move this out to the shared builder once
// enableCoreLibraryDesugaring is fixed.
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BackwardsCompatibleSpecificationTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BackwardsCompatibleSpecificationTest.java
index 6b46ee4..a922636 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BackwardsCompatibleSpecificationTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BackwardsCompatibleSpecificationTest.java
@@ -28,7 +28,7 @@
}
private final Path desugaredLib = ToolHelper.getDesugarJDKLibs();
- private final Path desugaredSpec = ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING;
+ private final Path desugaredSpec = ToolHelper.getDesugarLibJsonForTesting();
private final String release;
public BackwardsCompatibleSpecificationTest(TestParameters parameters, String release) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
index f71c916..5cc22b7 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
@@ -69,7 +69,7 @@
options.reporter,
libraryCompilation,
parameters.getApiLevel().getLevel())
- .parse(StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING_ALTERNATIVE_3));
+ .parse(StringResource.fromFile(ToolHelper.getDesugarLibJsonForTestingAlternative3()));
}
private void configurationForProgramCompilation(InternalOptions options) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryChecksumsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryChecksumsTest.java
index 6aff20f..bcefe74 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryChecksumsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryChecksumsTest.java
@@ -43,7 +43,7 @@
.addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
.setMode(CompilationMode.DEBUG)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(AndroidApiLevel.B.getLevel())
.setOutput(out, OutputMode.DexIndexed)
.build());
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryConfigurationParsingTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryConfigurationParsingTest.java
index 12ed820..348351b 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryConfigurationParsingTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryConfigurationParsingTest.java
@@ -115,7 +115,7 @@
public void testReference() throws Exception {
// Just test that the reference file parses without issues.
DesugaredLibraryConfiguration config =
- runPassing(StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING));
+ runPassing(StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()));
assertEquals(libraryCompilation, config.isLibraryCompilation());
}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
index d99b31f..02d036c 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
@@ -70,7 +70,7 @@
.addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
.addLibraryFiles(ToolHelper.getCoreLambdaStubs())
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(parameters.getApiLevel().getLevel())
.setOutput(desugaredLib, OutputMode.DexIndexed);
ToolHelper.runL8(l8Builder.build(), options -> {});
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
index 4de3828..e927918 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryTestBase.java
@@ -41,12 +41,26 @@
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
+import org.junit.BeforeClass;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
public class DesugaredLibraryTestBase extends TestBase {
+ private static final boolean FORCE_JDK11_DESUGARED_LIB = false;
+
+ @BeforeClass
+ public static void setUpDesugaredLibrary() {
+ if (!FORCE_JDK11_DESUGARED_LIB) {
+ return;
+ }
+ System.setProperty("desugar_jdk_json_dir", "src/library_desugar/jdk11");
+ System.setProperty(
+ "desugar_jdk_libs", "third_party/openjdk/desugar_jdk_libs_11/desugar_jdk_libs.jar");
+ System.out.println("Forcing the usage of JDK11 desugared library.");
+ }
+
// For conversions tests, we need DexRuntimes where classes to convert are present (DexRuntimes
// above N and O depending if Stream or Time APIs are used), but we need to compile the program
// with a minAPI below to force the use of conversions.
@@ -124,7 +138,7 @@
.setMode(shrink ? CompilationMode.RELEASE : CompilationMode.DEBUG)
.addProgramFiles(extraPaths)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(apiLevel.getLevel())
.setOutput(desugaredLib, OutputMode.DexIndexed);
Path mapping = null;
@@ -201,7 +215,7 @@
.addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
.setMode(CompilationMode.DEBUG)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(parameters.getApiLevel().getLevel())
.setOutput(desugaredLib, OutputMode.ClassFile);
@@ -220,7 +234,7 @@
libraryCompilation,
parameters.getApiLevel().getLevel())
.parse(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING),
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()),
builder -> builder.setSupportAllCallbacksFromLibrary(supportAllCallbacksFromLibrary));
}
@@ -240,7 +254,7 @@
.addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
.setMode(CompilationMode.DEBUG)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(apiLevel.getLevel())
.setOutput(desugaredLib, OutputMode.ClassFile);
ToolHelper.runL8(l8Builder.build());
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java
index 8dd0d27..04411fb 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java
@@ -58,7 +58,7 @@
.addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
.setMode(shrinkDesugaredLibrary ? CompilationMode.RELEASE : CompilationMode.DEBUG)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(parameters.getApiLevel().getLevel())
.setOutput(desugaredLib, OutputMode.DexIndexed);
if (shrinkDesugaredLibrary) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java
index 5b706e8..fc35e73 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/EmptyDesugaredLibrary.java
@@ -44,7 +44,7 @@
.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
.addProgramFiles(ToolHelper.getDesugarJDKLibs())
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(minApiLevel.getLevel());
}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java
index cae7a4a..9cb9cea 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ExtractWrapperTypesTest.java
@@ -195,7 +195,7 @@
DesugaredLibraryConfigurationParser parser =
new DesugaredLibraryConfigurationParser(
new DexItemFactory(), null, true, minApi.getLevel());
- return parser.parse(StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING));
+ return parser.parse(StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()));
}
private Map<ClassReference, Set<MethodReference>> getDirectlyReferencedWrapperTypes(
@@ -275,8 +275,8 @@
Path out = temp.newFolder().toPath();
GenerateLintFiles desugaredApi =
new GenerateLintFiles(
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
- ToolHelper.DESUGAR_JDK_LIBS,
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
+ ToolHelper.getDesugarJDKLibs().toString(),
out.toString());
desugaredApi.run(targetApi.getLevel());
return new CodeInspector(
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java
index 624e8a0..f5f2275 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java
@@ -120,15 +120,15 @@
Path directory = temp.newFolder().toPath();
GenerateLintFiles.main(
new String[] {
- ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING.toString(),
- ToolHelper.DESUGAR_JDK_LIBS,
+ ToolHelper.getDesugarLibJsonForTesting().toString(),
+ ToolHelper.getDesugarJDKLibs().toString(),
directory.toString()
});
InternalOptions options = new InternalOptions(new DexItemFactory(), new Reporter());
DesugaredLibraryConfiguration desugaredLibraryConfiguration =
new DesugaredLibraryConfigurationParser(
options.itemFactory, options.reporter, false, AndroidApiLevel.B.getLevel())
- .parse(StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING));
+ .parse(StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()));
for (AndroidApiLevel apiLevel : AndroidApiLevel.values()) {
Path compileApiLevelDirectory = directory.resolve("compile_api_level_" + apiLevel.getLevel());
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingJ$Test.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingJ$Test.java
index 0245f6e..a8462e1 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingJ$Test.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MergingJ$Test.java
@@ -106,7 +106,7 @@
.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
.addProgramFiles(ToolHelper.getDesugarJDKLibs())
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(AndroidApiLevel.B.getLevel())
.setOutput(outputDex, OutputMode.DexIndexed)
.build());
@@ -121,7 +121,7 @@
.addProgramFiles(JDK_11_JAVA_BASE_EXTENSION_COMPILED_FILES)
.addClasspathFiles(ToolHelper.getDesugarJDKLibs())
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(AndroidApiLevel.B.getLevel())
.setOutput(outputDex, OutputMode.DexIndexed)
.build());
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
index f62067c..efddc67 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/ObjectsTest.java
@@ -75,8 +75,8 @@
.parse(
StringResource.fromFile(
libraryDesugarJavaUtilObjects
- ? ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING_ALTERNATIVE_3
- : ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING));
+ ? ToolHelper.getDesugarLibJsonForTestingAlternative3()
+ : ToolHelper.getDesugarLibJsonForTesting()));
}
private void configurationForProgramCompilation(InternalOptions options) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java
index 43d5b9a..3fe90f3 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionsPresentTest.java
@@ -48,7 +48,7 @@
.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.P))
.addProgramFiles(ToolHelper.DESUGAR_LIB_CONVERSIONS)
.addDesugaredLibraryConfiguration(
- StringResource.fromFile(ToolHelper.DESUGAR_LIB_JSON_FOR_TESTING))
+ StringResource.fromFile(ToolHelper.getDesugarLibJsonForTesting()))
.setMinApiLevel(parameters.getApiLevel().getLevel())
.setOutput(desugaredLib, OutputMode.DexIndexed);
ToolHelper.runL8(l8Builder.build(), x -> {});
diff --git a/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1 b/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1
new file mode 100644
index 0000000..cb35cd0
--- /dev/null
+++ b/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1
@@ -0,0 +1 @@
+5696c90f0675746b4e996c80de461dd2cfd80076
\ No newline at end of file