Add a temporary workaround to rename enums in generated keep rules

This should fix the test ApiTestingSetUpTest.testNonExistingApiUse.

Bug: b/377257156
Change-Id: Ibb8069e8f34ab118062c9595d6fe822e7fa8883d
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index 885332f..16fa3e8 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -335,6 +335,23 @@
 }
 
 fun Project.baseCompilerCommandLine(
+  jvmArgs: List<String> = listOf(), jar: File, compiler: String, args: List<String> = listOf(),
+) : List<String> {
+  // Execute r8 commands against a stable r8 with dependencies.
+  // TODO(b/139725780): See if we can remove or lower the heap size (-Xmx8g).
+  return listOf(
+    getJavaPath(Jdk.JDK_17),
+    "-Xmx8g",
+    "-ea"
+  ) + jvmArgs +
+  listOf(
+    "-cp",
+    "$jar",
+    "com.android.tools.r8.SwissArmyKnife",
+    compiler) + args
+}
+
+fun Project.baseCompilerCommandLine(
   jar: File, compiler: String, args: List<String> = listOf(),
 ) : List<String> {
   // Execute r8 commands against a stable r8 with dependencies.
diff --git a/d8_r8/test/build.gradle.kts b/d8_r8/test/build.gradle.kts
index f6ba92c..80bfd4e 100644
--- a/d8_r8/test/build.gradle.kts
+++ b/d8_r8/test/build.gradle.kts
@@ -163,6 +163,7 @@
       argList.add("${it.getSingleOutputFile()}")
     }
     commandLine = baseCompilerCommandLine(
+            listOf("-Dcom.android.tools.r8.tracereferences.obfuscateAllEnums"),
             r8WithRelocatedDepsJar,
             "tracereferences",
             argList
@@ -314,6 +315,7 @@
       args.add("$testBaseJar")
     }
     commandLine = baseCompilerCommandLine(
+            listOf("-Dcom.android.tools.r8.tracereferences.obfuscateAllEnums"),
             r8WithRelocatedDepsJar,
             "r8",
             args)
diff --git a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
index a90ac15..3abb2cc 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -626,6 +626,8 @@
         // This must not be renamed, as the Java runtime will use Enum.valueOf to find the enum's
         // referenced in annotations. See b/236691999 for details.
         assert getNamingLens().lookupName(enumField) == enumField.name
+                || System.getProperty("com.android.tools.r8.tracereferences.obfuscateAllEnums")
+                    != null
             : "Enum field "
                 + enumField.name
                 + " renamed to "
diff --git a/src/main/java/com/android/tools/r8/tracereferences/KeepRuleFormatter.java b/src/main/java/com/android/tools/r8/tracereferences/KeepRuleFormatter.java
index 78580d9..ea9be1b 100644
--- a/src/main/java/com/android/tools/r8/tracereferences/KeepRuleFormatter.java
+++ b/src/main/java/com/android/tools/r8/tracereferences/KeepRuleFormatter.java
@@ -26,7 +26,10 @@
     // Don't obfuscate enums as the Java runtime will use Enum.valueOf to find enum's referenced in
     // annotations, see b/236691999.
     append(
-        allowObfuscation && !tracedClass.getAccessFlags().isEnum()
+        allowObfuscation
+                && (!tracedClass.getAccessFlags().isEnum()
+                    || System.getProperty("com.android.tools.r8.tracereferences.obfuscateAllEnums")
+                        != null)
             ? "-keep,allowobfuscation"
             : "-keep");
     if (tracedClass.getAccessFlags().isInterface()) {
diff --git a/tools/create_r8lib.py b/tools/create_r8lib.py
index 1f02869..2935a02 100755
--- a/tools/create_r8lib.py
+++ b/tools/create_r8lib.py
@@ -97,6 +97,7 @@
     cmd.append('-Dcom.android.tools.r8.enableKeepAnnotations=1')
     # TODO(b/356344563): Remove when this is default.
     cmd.append('-Dcom.android.tools.r8.enableEmptyMemberRulesToDefaultInitRuleConversion=0')
+    cmd.append('-Dcom.android.tools.r8.tracereferences.obfuscateAllEnums')
     cmd.extend(['-cp', args.r8compiler, 'com.android.tools.r8.R8'])
     cmd.append(args.r8jar)
     if args.debug_variant: