Check absence of (lock) verification errors in R8 benchmarks
Fixes: b/372859751
Bug: b/370968906
Change-Id: Ic41b7d392bddcfc089beac1384b852942f99b65b
diff --git a/src/test/testbase/java/com/android/tools/r8/Dex2OatTestRunResult.java b/src/test/testbase/java/com/android/tools/r8/Dex2OatTestRunResult.java
index 6b89f23..758ef33 100644
--- a/src/test/testbase/java/com/android/tools/r8/Dex2OatTestRunResult.java
+++ b/src/test/testbase/java/com/android/tools/r8/Dex2OatTestRunResult.java
@@ -4,6 +4,8 @@
package com.android.tools.r8;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import com.android.tools.r8.ToolHelper.ProcessResult;
@@ -11,7 +13,6 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
-import org.hamcrest.CoreMatchers;
import org.hamcrest.Matcher;
public class Dex2OatTestRunResult extends SingleTestRunResult<Dex2OatTestRunResult> {
@@ -29,10 +30,19 @@
return this;
}
+ public Dex2OatTestRunResult assertNoLockVerificationErrors() {
+ assertSuccess();
+ Matcher<? super String> matcher = not(containsString("failed lock verification"));
+ assertThat(
+ errorMessage("Run dex2oat produced lock verification errors.", matcher.toString()),
+ getStdErr(),
+ matcher);
+ return self();
+ }
+
public Dex2OatTestRunResult assertNoVerificationErrors() {
assertSuccess();
- Matcher<? super String> matcher =
- CoreMatchers.not(CoreMatchers.containsString("Verification error"));
+ Matcher<? super String> matcher = not(containsString("Verification error"));
assertThat(
errorMessage("Run dex2oat produced verification errors.", matcher.toString()),
getStdErr(),
@@ -42,7 +52,7 @@
public Dex2OatTestRunResult assertSoftVerificationErrors() {
assertSuccess();
- Matcher<? super String> matcher = CoreMatchers.containsString("Soft verification failures");
+ Matcher<? super String> matcher = containsString("Soft verification failures");
assertThat(
errorMessage("Run dex2oat did not produce soft verification errors.", matcher.toString()),
getStdErr(),
diff --git a/src/test/testbase/java/com/android/tools/r8/R8TestCompileResultBase.java b/src/test/testbase/java/com/android/tools/r8/R8TestCompileResultBase.java
index b38c63c..8d356cf 100644
--- a/src/test/testbase/java/com/android/tools/r8/R8TestCompileResultBase.java
+++ b/src/test/testbase/java/com/android/tools/r8/R8TestCompileResultBase.java
@@ -395,7 +395,9 @@
public CR benchmarkDex2OatCodeSize(BenchmarkResults results) throws IOException {
if (results.isBenchmarkingCodeSize()) {
Dex2OatTestRunResult dex2OatTestRunResult =
- runDex2Oat(new DexRuntime(DexVm.Version.LATEST_DEX2OAT));
+ runDex2Oat(new DexRuntime(DexVm.Version.LATEST_DEX2OAT))
+ .assertNoLockVerificationErrors()
+ .assertNoVerificationErrors();
results.addDex2OatSizeResult(dex2OatTestRunResult.getOatSizeOrDefault(0));
}
return self();