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