Uncomment information about --classfile and --dex

Bug: 65390962
Change-Id: Id5dcad6c52692994020b3ceb9e5cb3b92a30b2a4
diff --git a/src/main/java/com/android/tools/r8/R8CommandParser.java b/src/main/java/com/android/tools/r8/R8CommandParser.java
index 6984283..fd4f570 100644
--- a/src/main/java/com/android/tools/r8/R8CommandParser.java
+++ b/src/main/java/com/android/tools/r8/R8CommandParser.java
@@ -54,9 +54,8 @@
               " and options are:",
               "  --release                # Compile without debugging information (default).",
               "  --debug                  # Compile with debugging information.",
-              // TODO(b/65390962): Add help for output-mode flags once the CF backend is complete.
-              // "  --dex                    # Compile program to DEX file format (default).",
-              // "  --classfile              # Compile program to Java classfile format.",
+              "  --dex                    # Compile program to DEX file format (default).",
+              "  --classfile              # Compile program to Java classfile format.",
               "  --output <file>          # Output result in <file>.",
               "                           # <file> must be an existing directory or a zip file.",
               "  --lib <file>             # Add <file> as a library resource.",
diff --git a/src/test/java/com/android/tools/r8/R8EntryPointTests.java b/src/test/java/com/android/tools/r8/R8EntryPointTests.java
index edf7f20..0bbc7bc 100644
--- a/src/test/java/com/android/tools/r8/R8EntryPointTests.java
+++ b/src/test/java/com/android/tools/r8/R8EntryPointTests.java
@@ -4,6 +4,9 @@
 
 package com.android.tools.r8;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.StringContains.containsString;
+
 import com.android.tools.r8.ToolHelper.ProcessResult;
 import com.android.tools.r8.utils.FileUtils;
 import com.google.common.collect.ImmutableList;
@@ -131,6 +134,66 @@
     Assert.assertTrue(Files.isRegularFile(testFlags.getParent().resolve(SEEDS)));
   }
 
+  @Test
+  public void testSpecifyClassfile() throws IOException, InterruptedException {
+    Path out = temp.newFile("classfile.zip").toPath();
+    ProcessResult r8 =
+        ToolHelper.forkR8(
+            Paths.get("."),
+            "--lib",
+            ToolHelper.getJava8RuntimeJar().toString(),
+            "--classfile",
+            "--output",
+            out.toString(),
+            "--pg-conf",
+            PROGUARD_FLAGS.toString(),
+            "--pg-conf",
+            testFlags.toString(),
+            INPUT_JAR.toString());
+    Assert.assertEquals(0, r8.exitCode);
+  }
+
+  @Test
+  public void testSpecifyDex() throws IOException, InterruptedException {
+    Path out = temp.newFile("dex.zip").toPath();
+    ProcessResult r8 =
+        ToolHelper.forkR8(
+            Paths.get("."),
+            "--lib",
+            ToolHelper.getDefaultAndroidJar().toString(),
+            "--dex",
+            "--output",
+            out.toString(),
+            "--pg-conf",
+            PROGUARD_FLAGS.toString(),
+            "--pg-conf",
+            testFlags.toString(),
+            INPUT_JAR.toString());
+    Assert.assertEquals(0, r8.exitCode);
+  }
+
+  @Test
+  public void testSpecifyDexAndClassfileNotAllowed() throws IOException, InterruptedException {
+    Path out = temp.newFile("dex.zip").toPath();
+    ProcessResult r8 =
+        ToolHelper.forkR8(
+            Paths.get("."),
+            "--lib",
+            ToolHelper.getDefaultAndroidJar().toString(),
+            "--dex",
+            "--classfile",
+            "--output",
+            out.toString(),
+            "--pg-conf",
+            PROGUARD_FLAGS.toString(),
+            "--pg-conf",
+            testFlags.toString(),
+            INPUT_JAR.toString());
+    Assert.assertEquals(1, r8.exitCode);
+    assertThat(
+        r8.stderr, containsString("Cannot compile in both --dex and --classfile output mode"));
+  }
+
   private R8Command getCommand(Path out) throws IOException, CompilationFailedException {
     return R8Command.builder()
         .addLibraryFiles(ToolHelper.getDefaultAndroidJar())