Regression test for overlapping input and residual names.
Bug: b/279702361
Change-Id: I521e46b0d367247792b2456da93af48bdc7ffc6c
diff --git a/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java b/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java
index 6e9067c..0b9c5c7 100644
--- a/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ClassNameMinifierOriginalClassNameTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.naming.testclasses.A;
import com.android.tools.r8.naming.testclasses.B;
import com.android.tools.r8.utils.FileUtils;
+import com.google.common.util.concurrent.UncheckedExecutionException;
import java.io.IOException;
import java.nio.file.Path;
import java.util.concurrent.ExecutionException;
@@ -55,6 +56,8 @@
FileUtils.writeTextFile(dictionary, "A");
return testForR8(getStaticTemp(), parameters.getBackend())
.addProgramClasses(A.class, B.class)
+ // Including the source file forces an map entry for the pruned class A. See b/279702361.
+ .addKeepAttributeSourceFile()
.addKeepClassAndMembersRulesWithAllowObfuscation(B.class)
.addKeepRules("-classobfuscationdictionary " + dictionary.toString(), "-keeppackagenames")
.setMinApi(parameters)
@@ -67,7 +70,8 @@
});
}
- @Test
+ // TODO(b/279702361): Fix issue with overlapping input/residual names.
+ @Test(expected = UncheckedExecutionException.class)
public void testR8() throws ExecutionException, CompilationFailedException, IOException {
R8TestCompileResult libraryCompileResult = compilationResults.apply(parameters);
testForR8(parameters.getBackend())
@@ -83,7 +87,8 @@
.assertSuccessWithOutputLines("B.foo");
}
- @Test
+ // TODO(b/279702361): Fix issue with overlapping input/residual names.
+ @Test(expected = UncheckedExecutionException.class)
public void testR8WithReferenceToNotMapped() {
assumeTrue(parameters.isDexRuntime());
R8TestCompileResult libraryCompileResult = compilationResults.apply(parameters);