Only check difference to art if we can't compare to jvm
Bug: 185205222
Change-Id: I05f3b43b85c789ea9da23d50153666a3c6854219
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java b/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java
index b3bcdb4..8866236 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesCommon.java
@@ -20,6 +20,7 @@
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Collections;
import java.util.Map;
import java.util.Set;
import org.junit.Assume;
@@ -187,7 +188,6 @@
return;
}
- String original = getOriginalDexFile().toString();
Path generated = getOutputFile();
ToolHelper.ProcessResult javaResult = ToolHelper.runJava(getOriginalJarFile(""), mainClass);
@@ -222,14 +222,17 @@
return;
}
- // Check output against Art output on original dex file.
- String output =
- ToolHelper.checkArtOutputIdentical(original, generated.toString(), mainClass, vm);
-
- // Check output against JVM output.
+ // 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, output);
+ assertEquals("JVM and Art output differ", javaOutput, d8Output);
+ } else {
+ String dxCompiled = getOriginalDexFile().toString();
+ String output =
+ ToolHelper.checkArtOutputIdentical(dxCompiled, generated.toString(), mainClass, vm);
}
}