Stop ignoring test associated with bug since it has been resolved
Fixed: b/129390240
Change-Id: I408e3ccfbb19ad62ec3064063817e2aee1262432
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlineKeepMethodTest.java b/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlineKeepMethodTest.java
index 92383ae..3787be5 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlineKeepMethodTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/classinliner/ClassInlineKeepMethodTest.java
@@ -9,19 +9,15 @@
import static org.hamcrest.MatcherAssert.assertThat;
import com.android.tools.r8.CompilationFailedException;
-import com.android.tools.r8.NeverInline;
-import com.android.tools.r8.NoVerticalClassMerging;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.ToolHelper.DexVm.Version;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
-import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.InstructionSubject.JumboStringMode;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -32,10 +28,41 @@
private final TestParameters parameters;
private static final String EXPECTED_OUTPUT = "Hello world";
- @NoVerticalClassMerging
+ @Parameterized.Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withDexRuntime(Version.last()).build();
+ }
+
+ public ClassInlineKeepMethodTest(TestParameters parameters) {
+ this.parameters = parameters;
+ }
+
+ @Test
+ public void testIsKeptWithName()
+ throws ExecutionException, CompilationFailedException, IOException {
+ testForR8(parameters.getBackend())
+ .addInnerClasses(ClassInlineKeepMethodTest.class)
+ .addKeepMainRule(Keeper.class)
+ .addKeepClassAndMembersRules(ShouldBeKept.class)
+ .run(parameters.getRuntime(), Keeper.class)
+ .assertSuccessWithOutput(EXPECTED_OUTPUT)
+ .inspect(
+ inspector -> {
+ ClassSubject shouldBeKeptClass = inspector.clazz(ShouldBeKept.class);
+ assertThat(shouldBeKeptClass, isPresent());
+ assertThat(
+ shouldBeKeptClass.uniqueMethodWithOriginalName("shouldBeKept"), isPresent());
+ // Verify that we did not inline from the method by checking for a const string.
+ ClassSubject clazz = inspector.clazz(Keeper.class);
+ assertThat(clazz, isPresent());
+ MethodSubject main = clazz.uniqueMethodWithOriginalName("main");
+ assertTrue(
+ main.streamInstructions().noneMatch(i -> i.isConstString(JumboStringMode.ALLOW)));
+ });
+ }
+
public static class ShouldBeKept {
- @NeverInline
public void shouldBeKept() {
System.out.print("Hello world");
}
@@ -48,32 +75,4 @@
}
}
- @Parameterized.Parameters(name = "{0}")
- public static TestParametersCollection data() {
- return getTestParameters().withDexRuntime(Version.last()).build();
- }
-
- public ClassInlineKeepMethodTest(TestParameters parameters) {
- this.parameters = parameters;
- }
-
- @Ignore("b/129390240")
- @Test
- public void testIsKeptWithName()
- throws ExecutionException, CompilationFailedException, IOException {
- CodeInspector inspector =
- testForR8(parameters.getBackend())
- .addInnerClasses(ClassInlineKeepMethodTest.class)
- .addKeepMainRule(Keeper.class)
- .addKeepClassAndMembersRules(ShouldBeKept.class)
- .enableInliningAnnotations()
- .enableNoVerticalClassMergingAnnotations()
- .run(parameters.getRuntime(), Keeper.class)
- .assertSuccessWithOutput(EXPECTED_OUTPUT)
- .inspector();
- ClassSubject clazz = inspector.clazz(Keeper.class);
- assertThat(clazz, isPresent());
- MethodSubject main = clazz.uniqueMethodWithOriginalName("main");
- assertTrue(main.streamInstructions().noneMatch(i -> i.isConstString(JumboStringMode.ALLOW)));
- }
}