Suppress StringBuilder/StringBuffer constructor failures in jctf

These fail because we remove new instance calls that would throw

Bug: 133745205
Change-Id: Ideeccf63887645ef7523ceb36acedf7ac8445248
diff --git a/src/test/java/com/android/tools/r8/JctfTestSpecifications.java b/src/test/java/com/android/tools/r8/JctfTestSpecifications.java
index 34955b6..843ecf4 100644
--- a/src/test/java/com/android/tools/r8/JctfTestSpecifications.java
+++ b/src/test/java/com/android/tools/r8/JctfTestSpecifications.java
@@ -1740,6 +1740,25 @@
           .put("lang.reflect.Field.toGenericString.Field_toGenericString_A01", cf())
           .build(); // end of failuresToTriage
 
+
+  public static final Multimap<String, TestCondition> bugs =
+      new ImmutableListMultimap.Builder<String, TestCondition>()
+          // The following StringBuffer/StringBuilder tests fails because we remove, e.g.,
+          // new StringBuffer(-5) if it is dead code (but it should trow), see b/133745205
+          .put("lang.StringBuffer.ConstructorLjava_lang_String.StringBuffer_Constructor_A02",
+              match(R8_COMPILER))
+          .put("lang.StringBuffer.ConstructorLjava_lang_CharSequence.StringBuffer_Constructor_A02",
+              match(R8_COMPILER))
+          .put("lang.StringBuffer.ConstructorI.StringBuffer_Constructor_A02",
+              match(R8_COMPILER))
+          .put("lang.StringBuilder.ConstructorI.StringBuilder_Constructor_A02",
+                match(R8_COMPILER))
+          .put("lang.StringBuilder.ConstructorLjava_lang_CharSequence.StringBuilder_Constructor_A02",
+              match(R8_COMPILER))
+          .put("lang.StringBuilder.ConstructorLjava_lang_String.StringBuilder_Constructor_A02 ",
+              match(R8_COMPILER))
+          .build();
+
   public static final Multimap<String, TestCondition> flakyWhenRun =
       new ImmutableListMultimap.Builder<String, TestCondition>()
           .put("lang.Object.notifyAll.Object_notifyAll_A03", anyDexVm())
@@ -1945,6 +1964,9 @@
     if (testMatch(failuresToTriage, name, compilerUnderTest, runtime, compilationMode)) {
       outcome = Outcome.FAILS_WHEN_RUN;
     }
+    if (testMatch(bugs, name, compilerUnderTest, runtime, compilationMode)) {
+      outcome = Outcome.FAILS_WHEN_RUN;
+    }
     if (testMatch(timeoutsWhenRun, name, compilerUnderTest, runtime, compilationMode)) {
       assert outcome == null;
       outcome = Outcome.TIMEOUTS_WHEN_RUN;
diff --git a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
index 18a6e69..2b32d66 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -2133,7 +2133,9 @@
       try {
         runJctfTestDoRunOnArt(fileNames, specification, fullClassName, vmSpec.vm.asDex().getVm());
       } catch (AssertionError e) {
-        vmErrors.addFailedOnRunError(CompilerUnderTest.R8, vmSpec.vm, e);
+        if (!specification.failsOnRun) {
+          vmErrors.addFailedOnRunError(CompilerUnderTest.R8, vmSpec.vm, e);
+        }
       }
     }
     return vmErrors;