Add internal testing option for not reporting check-discarded errors

This is a bit of a weak change to the test, but adding in a test-option
will preserve the original intend of the test to see that -forceinline
should have no effect in debug builds.

Bug: 139860071
Change-Id: I18ef5cc9711ddbb59543a73c78aaeb532e3ad5a1
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 4552b2a..d933744 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -843,7 +843,8 @@
             enqueuer.getGraphNode(reference), System.out);
       }
     }
-    if (rootSet.checkDiscarded.isEmpty()) {
+    if (rootSet.checkDiscarded.isEmpty()
+        || appView.options().testing.dontReportFailingCheckDiscarded) {
       return;
     }
     List<DexDefinition> failed = new DiscardedChecker(rootSet, classes.get()).run();
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 2b3f776..e43b307 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -972,6 +972,7 @@
     // TODO(b/129458850) When fixed, remove this and change all usages to "true".
     public boolean enableStatefulLambdaCreateInstanceMethod = false;
     public int basicBlockMuncherIterationLimit = NO_LIMIT;
+    public boolean dontReportFailingCheckDiscarded = false;
 
     // Flag to turn on/off JDK11+ nest-access control even when not required (Cf backend)
     public boolean enableForceNestBasedAccessDesugaringForTest = false;
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 0f5e50c..4fdcfa4 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -1945,8 +1945,7 @@
     return builder;
   }
 
-  public static R8Command.Builder allowTestProguardOptions(
-      R8Command.Builder builder) {
+  public static R8Command.Builder allowTestProguardOptions(R8Command.Builder builder) {
     builder.allowTestProguardOptions();
     return builder;
   }
diff --git a/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java b/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
index 6e34a8b..42cd37e 100644
--- a/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
+++ b/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
@@ -31,7 +31,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.function.BiConsumer;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -90,7 +89,12 @@
     }
     ToolHelper.allowTestProguardOptions(builder);
     AndroidApp app =
-        ToolHelper.runR8(builder.build(), opts -> opts.enableClassInlining = enableClassInliner);
+        ToolHelper.runR8(
+            builder.build(),
+            opts -> {
+              opts.enableClassInlining = enableClassInliner;
+              opts.testing.dontReportFailingCheckDiscarded = true;
+            });
     inspection.accept(new CodeInspector(app), mode);
 
     if (parameters.isDexRuntime()) {
@@ -211,7 +215,6 @@
   }
 
   @Test
-  @Ignore("b/139860071")
   public void test() throws Exception {
     runTest(this::validate, true, CompilationMode.DEBUG);
     runTest(this::validate, true, CompilationMode.RELEASE);