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