Update expected outputs of getSimpleNameTest for older VMs.
As of go/r8g/31482, scope of optimization is changed.
Tested:
$ tools/test.py --dex_vm=all *GetSimpleNameTest
Bug: 119471127, 118536394, 120185045
Change-Id: I891834757c577cbdfa7ed14ffa1a847838a8d6da
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java
index a7baf83..6f2fb17 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java
@@ -13,6 +13,7 @@
import com.android.tools.r8.R8TestBuilder;
import com.android.tools.r8.TestRunResult;
import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.ToolHelper.DexVm;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -139,8 +140,18 @@
"$$",
"d[][][]",
"[][][]",
- "g",
- "g"
+ "Inner",
+ "Inner"
+ );
+ private static final String RENAMED_OUTPUT_FOR_OLDER_VMS = StringUtils.lines(
+ "Local_t03",
+ "InnerLocal",
+ "$",
+ "$$",
+ "Local[][][]",
+ "[][][]",
+ "Inner",
+ "Inner"
);
private static final Class<?> MAIN = ClassGetSimpleName.class;
@@ -229,6 +240,10 @@
.enableInliningAnnotations()
.addKeepMainRule(MAIN)
.addKeepRules("-keep,allowobfuscation class **.ClassGetSimpleName*")
+ // See b/119471127: some old VMs are not resilient to broken attributes.
+ // Comment out the following line to reproduce b/120130435
+ // then use OUTPUT_WITH_SHRUNK_ATTRIBUTE
+ .addKeepRules("-keep,allowobfuscation class **.Outer*")
.addKeepRules("-keepattributes InnerClasses,EnclosingMethod")
.addKeepRules("-printmapping " + createNewMappingPath().toAbsolutePath().toString());
if (!enableMinification) {
@@ -243,9 +258,14 @@
if (backend == Backend.CF) {
return;
}
- result.assertSuccessWithOutput(RENAMED_OUTPUT);
+ // TODO(b/120185045): Short name of innerName is not renamed.
+ if (ToolHelper.getDexVm().isOlderThanOrEqual(DexVm.ART_4_4_4_HOST)) {
+ result.assertSuccessWithOutput(RENAMED_OUTPUT_FOR_OLDER_VMS);
+ } else {
+ result.assertSuccessWithOutput(RENAMED_OUTPUT);
+ }
} else {
- result.assertSuccessWithOutput(OUTPUT_WITH_SHRUNK_ATTRIBUTE);
+ result.assertSuccessWithOutput(JAVA_OUTPUT);
}
test(result, 0);
}