Change legacy main-dex tests to use *-rules and disable R8 variants.
Change-Id: Iaad32c69ee2f2e168f8643cead2a73df767c7c57
diff --git a/src/test/java/com/android/tools/r8/D8TestBuilder.java b/src/test/java/com/android/tools/r8/D8TestBuilder.java
index 4913bc5..67eeeb0 100644
--- a/src/test/java/com/android/tools/r8/D8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/D8TestBuilder.java
@@ -99,4 +99,11 @@
}
return self();
}
+
+ public D8TestBuilder addMainDexKeepClassAndMemberRules(Class<?>... classes) {
+ for (Class<?> clazz : classes) {
+ addMainDexRules("-keep class " + clazz.getTypeName() + " { *; }");
+ }
+ return self();
+ }
}
diff --git a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
index 0b519f2..bd9bd27 100644
--- a/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
+++ b/src/test/java/com/android/tools/r8/RunExamplesAndroidOTest.java
@@ -10,6 +10,7 @@
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeFalse;
import com.android.tools.r8.ToolHelper.DexVm;
import com.android.tools.r8.ToolHelper.DexVm.Version;
@@ -114,21 +115,19 @@
return self();
}
- C withMainDexClass(String... classes) {
- return withBuilderTransformation(builder -> builder.addMainDexClasses(classes));
- }
-
C withMainDexKeepClassRules(List<String> classes) {
return withBuilderTransformation(
builder -> {
if (builder instanceof D8Command.Builder) {
((D8Command.Builder) builder)
.addMainDexRules(
- ListUtils.map(classes, c -> "-keep class " + c), Origin.unknown());
+ ListUtils.map(classes, c -> "-keep class " + c + " { *; }"),
+ Origin.unknown());
} else if (builder instanceof R8Command.Builder) {
((R8Command.Builder) builder)
.addMainDexRules(
- ListUtils.map(classes, c -> "-keep class " + c), Origin.unknown());
+ ListUtils.map(classes, c -> "-keep class " + c + " { *; }"),
+ Origin.unknown());
} else {
fail("Unexpected builder type: " + builder.getClass());
}
@@ -492,36 +491,28 @@
public void testLambdaDesugaringWithMainDexList2() throws Throwable {
// Main dex class has many lambdas.
testIntermediateWithMainDexList(
- "lambdadesugaring", 51, ImmutableList.of("lambdadesugaring.LambdaDesugaring$Refs$B"));
+ "lambdadesugaring", 98, ImmutableList.of("lambdadesugaring.LambdaDesugaring$Refs$B"));
}
@Test
public void testInterfaceDesugaringWithMainDexList1() throws Throwable {
// Main dex interface has one static method.
- // TODO(b/178127572): See if we can update R8 to not extend the main dex content.
- boolean isR8 = this instanceof R8RunExamplesAndroidOTest;
testIntermediateWithMainDexList(
"interfacemethods",
Paths.get(ToolHelper.EXAMPLES_ANDROID_N_BUILD_DIR, "interfacemethods" + JAR_EXTENSION),
- isR8 ? 2 : 1,
- isR8
- ? ImmutableList.of("interfacemethods.I2", "interfacemethods.I2$-CC")
- : ImmutableList.of("interfacemethods.I2"));
+ 2,
+ ImmutableList.of("interfacemethods.I2", "interfacemethods.I2$-CC"));
}
@Test
public void testInterfaceDesugaringWithMainDexList2() throws Throwable {
// Main dex interface has one default method.
- // TODO(b/178127572): See if we can update R8 to not extend the main dex content.
- boolean isR8 = this instanceof R8RunExamplesAndroidOTest;
testIntermediateWithMainDexList(
"interfacemethods",
Paths.get(ToolHelper.EXAMPLES_ANDROID_N_BUILD_DIR, "interfacemethods" + JAR_EXTENSION),
- isR8 ? 2 : 1,
- isR8
- ? ImmutableList.of("interfacemethods.I2", "interfacemethods.I2$-CC")
- : ImmutableList.of("interfacemethods.I2"));
+ 2,
+ ImmutableList.of("interfacemethods.I2", "interfacemethods.I2$-CC"));
}
@Test
@@ -547,6 +538,9 @@
protected void testIntermediateWithMainDexList(
String packageName, Path input, int expectedMainDexListSize, List<String> mainDexClasses)
throws Throwable {
+ // R8 does not support merging intermediate builds via DEX.
+ assumeFalse(this instanceof R8RunExamplesAndroidOTest);
+
AndroidApiLevel minApi = AndroidApiLevel.K;
// Full build, will be used as reference.
diff --git a/src/test/java/com/android/tools/r8/maindexlist/MainDexListOutputTest.java b/src/test/java/com/android/tools/r8/maindexlist/MainDexListOutputTest.java
index d3d99ee..8f62a1c 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/MainDexListOutputTest.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/MainDexListOutputTest.java
@@ -141,7 +141,7 @@
testForD8()
.setMinApi(AndroidApiLevel.K)
.addProgramFiles(dexOutput)
- .addMainDexKeepClassRules(TestClass.class)
+ .addMainDexKeepClassAndMemberRules(TestClass.class)
.setMainDexListConsumer(consumer)
.compile();
assertTrue(consumer.called);