Workaround for some non ASCII characters
Bug: b/293388944
Change-Id: I7454f1faa81be7e49925aae6eb6469a18fe58e6a
diff --git a/src/library_desugar/jdk11/desugar_jdk_libs.json b/src/library_desugar/jdk11/desugar_jdk_libs.json
index c5701ac..965e3cf 100644
--- a/src/library_desugar/jdk11/desugar_jdk_libs.json
+++ b/src/library_desugar/jdk11/desugar_jdk_libs.json
@@ -268,6 +268,12 @@
"java.util.OptionalInt": "java.util.OptionalConversions",
"java.util.OptionalLong": "java.util.OptionalConversions"
}
+ },
+ {
+ "api_level_below_or_equal": 18,
+ "rewrite_prefix": {
+ "java.nio.charset.StandardCharsets": "j$.nio.charset.StandardCharsets"
+ }
}
],
"program_flags": [
@@ -405,6 +411,14 @@
"j$.util.stream.Stream": "java.util.stream.Stream"
}
}
+ },
+ {
+ "api_level_below_or_equal": 18,
+ "retarget_static_field": {
+ "sun.nio.cs.US_ASCII sun.nio.cs.US_ASCII#INSTANCE": "java.nio.charset.Charset java.nio.charset.StandardCharsets#US_ASCII",
+ "sun.nio.cs.ISO_8859_1 sun.nio.cs.ISO_8859_1#INSTANCE": "java.nio.charset.Charset java.nio.charset.StandardCharsets#ISO_8859_1",
+ "sun.nio.cs.UTF_8 sun.nio.cs.UTF_8#INSTANCE": "java.nio.charset.Charset java.nio.charset.StandardCharsets#UTF_8"
+ }
}
],
"shrinker_config": [
diff --git a/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java b/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java
index c1817a7..a8fbdbf 100644
--- a/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java
+++ b/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java
@@ -120,6 +120,12 @@
if (!callback.onLine(header)) {
return;
}
+ // TODO(b/293388944): The comparison is not valid for Strings containing some non
+ // ASCII characters such as taiwanese characters.
+ if (method.getHolderType().toString().equals("sun.nio.cs.EUC_TWMapping")
+ || method.getHolderType().toString().equals("sun.nio.cs.GB18030")) {
+ return;
+ }
if (method.hasCode()) {
List<String> lines = StringUtils.splitLines(method.getCode().toString());
for (String line : lines) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
index 8245517..d25f709 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
@@ -4,7 +4,7 @@
package com.android.tools.r8.desugar.desugaredlibrary;
import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
-import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8AndAll3Jdk11;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -36,7 +36,7 @@
public static List<Object[]> data() {
return buildParameters(
getTestParameters().withDexRuntimes().withAllApiLevels().build(),
- getJdk8Jdk11(),
+ getJdk8AndAll3Jdk11(),
ImmutableList.of(D8_L8DEBUG));
}