Enable CF on ImplicitlyKeptDefaultConstructorTest.


Enable CF on AsterisksTest.

Change-Id: I60cb2fd56416748c30d3d3388f2b02f6a7fdd926
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
index f0d8c99..24f64c9 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
@@ -38,12 +38,16 @@
     PROGUARD6,
     PROGUARD6_THEN_D8,
     R8_COMPAT,
+    R8_COMPAT_CF,
     R8,
     R8_CF
   }
 
   protected static boolean isR8(Shrinker shrinker) {
-    return shrinker == Shrinker.R8_COMPAT || shrinker == Shrinker.R8 || shrinker == Shrinker.R8_CF;
+    return shrinker == Shrinker.R8_COMPAT
+        || shrinker == Shrinker.R8_COMPAT_CF
+        || shrinker == Shrinker.R8
+        || shrinker == Shrinker.R8_CF;
   }
 
   protected AndroidApp runShrinker(
@@ -62,7 +66,9 @@
       case PROGUARD6_THEN_D8:
         return runProguard6AndD8(programClasses, proguardConfig, proguardMap);
       case R8_COMPAT:
-        return runR8Compat(programClasses, proguardConfig);
+        return runR8Compat(programClasses, proguardConfig, Backend.DEX);
+      case R8_COMPAT_CF:
+        return runR8Compat(programClasses, proguardConfig, Backend.CF);
       case R8:
         return runR8(programClasses, proguardConfig, Backend.DEX);
       case R8_CF:
@@ -87,7 +93,9 @@
       case PROGUARD6_THEN_D8:
         return inspectProguard6AndD8Result(programClasses, proguardConfig);
       case R8_COMPAT:
-        return inspectR8CompatResult(programClasses, proguardConfig);
+        return inspectR8CompatResult(programClasses, proguardConfig, Backend.DEX);
+      case R8_COMPAT_CF:
+        return inspectR8CompatResult(programClasses, proguardConfig, Backend.CF);
       case R8:
         return inspectR8Result(programClasses, proguardConfig, Backend.DEX);
       case R8_CF:
@@ -129,21 +137,27 @@
     return new CodeInspector(runR8(programClasses, proguardConfig, backend));
   }
 
-  protected AndroidApp runR8Compat(List<Class> programClasses, String proguardConfig)
-      throws Exception {
+  protected AndroidApp runR8Compat(
+      List<Class> programClasses, String proguardConfig, Backend backend) throws Exception {
     CompatProguardCommandBuilder builder = new CompatProguardCommandBuilder(true);
     ToolHelper.allowTestProguardOptions(builder);
     builder.addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown());
     programClasses.forEach(
         clazz -> builder.addProgramFiles(ToolHelper.getClassFileForTestClass(clazz)));
-    builder.addLibraryFiles(ToolHelper.getAndroidJar(ToolHelper.getMinApiLevelForDexVm()));
-    builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
+    if (backend == Backend.DEX) {
+      builder.addLibraryFiles(ToolHelper.getAndroidJar(ToolHelper.getMinApiLevelForDexVm()));
+      builder.setProgramConsumer(DexIndexedConsumer.emptyConsumer());
+    } else {
+      assert backend == Backend.CF;
+      builder.addLibraryFiles(ToolHelper.getJava8RuntimeJar());
+      builder.setProgramConsumer(ClassFileConsumer.emptyConsumer());
+    }
     return ToolHelper.runR8(builder.build());
   }
 
-  protected CodeInspector inspectR8CompatResult(List<Class> programClasses, String proguardConfig)
-      throws Exception {
-    return new CodeInspector(runR8Compat(programClasses, proguardConfig));
+  protected CodeInspector inspectR8CompatResult(
+      List<Class> programClasses, String proguardConfig, Backend backend) throws Exception {
+    return new CodeInspector(runR8Compat(programClasses, proguardConfig, backend));
   }
 
   protected AndroidApp runProguard5(
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
index 168a0bd..1f5ea77 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/defaultctor/ImplicitlyKeptDefaultConstructorTest.java
@@ -15,8 +15,12 @@
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 class SuperClass {
 
@@ -90,8 +94,20 @@
   }
 }
 
+@RunWith(Parameterized.class)
 public class ImplicitlyKeptDefaultConstructorTest extends ProguardCompatibilityTestBase {
 
+  private Backend backend;
+
+  @Parameterized.Parameters(name = "Backend: {0}")
+  public static Collection<Backend> data() {
+    return Arrays.asList(Backend.values());
+  }
+
+  public ImplicitlyKeptDefaultConstructorTest(Backend backend) {
+    this.backend = backend;
+  }
+
   private void checkPresentWithDefaultConstructor(ClassSubject clazz) {
     assertThat(clazz, isPresent());
     assertThat(clazz, hasDefaultConstructor());
@@ -131,7 +147,7 @@
       Class mainClass, List<Class> programClasses, String proguardConfiguration,
       TriConsumer<Class, List<Class>, CodeInspector> r8Checker,
       TriConsumer<Class, List<Class>, CodeInspector> proguardChecker) throws Exception {
-    CodeInspector inspector = inspectR8CompatResult(programClasses, proguardConfiguration);
+    CodeInspector inspector = inspectR8CompatResult(programClasses, proguardConfiguration, backend);
     r8Checker.accept(mainClass, programClasses, inspector);
 
     if (isRunProguard()) {