Enable CF on PrintUsageTest.

Change-Id: If7d5a5aafc6c06249db167fcc6eb5ef78653f0d5
diff --git a/src/test/java/com/android/tools/r8/shaking/PrintUsageTest.java b/src/test/java/com/android/tools/r8/shaking/PrintUsageTest.java
index bce2e8b..3b5a830 100644
--- a/src/test/java/com/android/tools/r8/shaking/PrintUsageTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/PrintUsageTest.java
@@ -41,8 +41,14 @@
 @RunWith(Parameterized.class)
 public class PrintUsageTest {
 
+  private enum Backend {
+    CF,
+    DEX
+  }
+
   private static final String PRINT_USAGE_FILE_SUFFIX = "-print-usage.txt";
 
+  private final Backend backend;
   private final String test;
   private final String programFile;
   private final List<String> keepRulesFiles;
@@ -52,9 +58,11 @@
   public TemporaryFolder temp = ToolHelper.getTemporaryFolderForTest();
 
   public PrintUsageTest(
+      Backend backend,
       String test,
       List<String> keepRulesFiles,
       Consumer<PrintUsageInspector> inspection) {
+    this.backend = backend;
     this.test = test;
     this.programFile = ToolHelper.EXAMPLES_BUILD_DIR + test + ".jar";
     this.keepRulesFiles = keepRulesFiles;
@@ -64,22 +72,29 @@
   @Before
   public void runR8andGetPrintUsage() throws Exception {
     Path out = temp.getRoot().toPath();
-    R8Command command =
+    R8Command.Builder builder =
         ToolHelper.addProguardConfigurationConsumer(
                 R8Command.builder(),
                 pgConfig -> {
                   pgConfig.setPrintUsage(true);
                   pgConfig.setPrintUsageFile(out.resolve(test + PRINT_USAGE_FILE_SUFFIX));
                 })
-            .setOutput(out, OutputMode.DexIndexed)
             .addProgramFiles(Paths.get(programFile))
-            .addProguardConfigurationFiles(ListUtils.map(keepRulesFiles, Paths::get))
-            .addLibraryFiles(ToolHelper.getDefaultAndroidJar())
-            .build();
-    ToolHelper.runR8(command, options -> {
-      // Disable inlining to make this test not depend on inlining decisions.
-      options.enableInlining = false;
-    });
+            .addProguardConfigurationFiles(ListUtils.map(keepRulesFiles, Paths::get));
+
+    if (backend == Backend.DEX) {
+      builder
+          .setOutput(out, OutputMode.DexIndexed)
+          .addLibraryFiles(ToolHelper.getDefaultAndroidJar());
+    } else {
+      builder.setOutput(out, OutputMode.ClassFile).addLibraryFiles(ToolHelper.getJava8RuntimeJar());
+    }
+    ToolHelper.runR8(
+        builder.build(),
+        options -> {
+          // Disable inlining to make this test not depend on inlining decisions.
+          options.enableInlining = false;
+        });
   }
 
   @Test
@@ -106,6 +121,7 @@
     inspections.put("shaking12:keep-rules-printusage.txt", PrintUsageTest::inspectShaking12);
 
     List<Object[]> testCases = new ArrayList<>();
+    for (Backend backend : Backend.values()) {
     Set<String> usedInspections = new HashSet<>();
     for (String test : tests) {
       File[] keepFiles = new File(ToolHelper.EXAMPLES_DIR + test)
@@ -115,11 +131,13 @@
         Consumer<PrintUsageInspector> inspection =
             getTestOptionalParameter(inspections, usedInspections, test, keepName);
         if (inspection != null) {
-          testCases.add(new Object[]{test, ImmutableList.of(keepFile.getPath()), inspection});
+            testCases.add(
+                new Object[] {backend, test, ImmutableList.of(keepFile.getPath()), inspection});
         }
       }
     }
-    assert usedInspections.size() == inspections.size();
+      assert usedInspections.size() == inspections.size();
+    }
     return testCases;
   }