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();