Remove remaining runs on DX from R8RunExamples
Bug: 185205222
Change-Id: Id0e574c53d40487a88af137e92a58bec152d6d20
diff --git a/src/test/examples/enclosingmethod/OuterClass.java b/src/test/examples/enclosingmethod/OuterClass.java
index 387f233..5268954 100644
--- a/src/test/examples/enclosingmethod/OuterClass.java
+++ b/src/test/examples/enclosingmethod/OuterClass.java
@@ -55,7 +55,11 @@
System.out.println(anInstance.getClass().getEnclosingClass());
System.out.println(anInstance.getClass().getEnclosingMethod());
System.out.println(anInstance.getClass().isAnonymousClass());
- System.out.println(anInstance.getClass().isLocalClass());
- System.out.println(anInstance.getClass().isMemberClass());
+ // DEX enclosing-class annotations don't distinguish member classes from local classes.
+ // This results in Class.isLocalClass always being false and Class.isMemberClass always
+ // being true even when the converse is the case when running on the JVM.
+ // More context b/69453990
+ System.out.println(
+ anInstance.getClass().isLocalClass() || anInstance.getClass().isMemberClass());
}
}
diff --git a/src/test/examples/throwing/Throwing.java b/src/test/examples/throwing/Throwing.java
index 574556f..80b8115 100644
--- a/src/test/examples/throwing/Throwing.java
+++ b/src/test/examples/throwing/Throwing.java
@@ -101,7 +101,12 @@
public static void printFrameHead(Exception e) {
for (StackTraceElement element : e.getStackTrace()) {
- System.out.println("FRAME: " + element);
+ // Dalvik will print frames like:
+ // FRAME: dalvik.system.NativeStart.main(Native Method)
+ // ignore these to get same stacks as the JVM
+ if (!element.toString().contains("dalvik")) {
+ System.out.println("FRAME: " + element);
+ }
}
}
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
index 8a0cd0e..45122d4 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
@@ -170,27 +170,17 @@
}
@Override
- protected Map<String, TestCondition> getOutputNotIdenticalToJVMOutput() {
- return new ImmutableMap.Builder<String, TestCondition>()
- // Traverses stack frames that contain Art specific frames.
- .put("throwing.Throwing", TestCondition.any())
- // DEX enclosing-class annotations don't distinguish member classes from local classes.
- // This results in Class.isLocalClass always being false and Class.isMemberClass always
- // being true even when the converse is the case when running on the JVM.
- .put("enclosingmethod.Main", TestCondition.any())
- .build();
- }
-
-
- @Override
protected Map<String, TestCondition> getSkip() {
return new ImmutableMap.Builder<String, TestCondition>()
// Test uses runtime methods which are not available on older Art versions.
- .put("regress_70703087.Test",
+ .put(
+ "regress_70703087.Test",
TestCondition.match(TestCondition.runtimesUpTo(Version.V6_0_1)))
+ // Dalvik does not correctly report the enclosing classes.
+ .put(
+ "enclosingmethod.Main", TestCondition.match(TestCondition.runtimesUpTo(Version.V4_4_4)))
// Test uses runtime methods which are not available on older Art versions.
- .put("loop.UdpServer",
- TestCondition.match(TestCondition.runtimesUpTo(Version.V4_0_4)))
+ .put("loop.UdpServer", TestCondition.match(TestCondition.runtimesUpTo(Version.V4_0_4)))
.build();
}
}
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesTestBase.java b/src/test/java/com/android/tools/r8/R8RunExamplesTestBase.java
index 62b9ca4..99fedb6 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesTestBase.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesTestBase.java
@@ -214,22 +214,11 @@
}
// Check output against JVM output if we have it, otherwise check on art
- if (shouldMatchJVMOutput(vm.getVersion())) {
- String d8Output =
- ToolHelper.runArtNoVerificationErrors(
- Collections.singletonList(generated.toString()), mainClass, null, vm);
- String javaOutput = javaResult.stdout;
- assertEquals("JVM and Art output differ", javaOutput, d8Output);
- } else {
- String dxCompiled = getOriginalDexFile().toString();
- String output =
- ToolHelper.checkArtOutputIdentical(dxCompiled, generated.toString(), mainClass, vm);
- }
- }
-
- private boolean shouldMatchJVMOutput(DexVm.Version version) {
- TestCondition condition = getOutputNotIdenticalToJVMOutput().get(mainClass);
- return condition == null || !condition.test(DexTool.NONE, compiler, version, mode);
+ String d8Output =
+ ToolHelper.runArtNoVerificationErrors(
+ Collections.singletonList(generated.toString()), mainClass, null, vm);
+ String javaOutput = javaResult.stdout;
+ assertEquals("JVM and Art output differ", javaOutput, d8Output);
}
private boolean shouldSkipVm(DexVm.Version version) {
@@ -252,7 +241,5 @@
protected abstract Set<String> getFailingOutputCf();
- protected abstract Map<String, TestCondition> getOutputNotIdenticalToJVMOutput();
-
protected abstract Map<String, TestCondition> getSkip();
}