[Partition] Add test for minified name matching a primitive type
Bug: b/286001537
Change-Id: I7773bdab961493d6eba9e6470978cb053255bc89
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java
index 3af7dff..4fdc94a 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/ProguardMapPartitionerOnClassNameToText.java
@@ -273,7 +273,7 @@
extends ProguardMapPartitionerBuilderImpl {
private MappingPartitionKeyStrategy mappingPartitionKeyStrategy =
- MappingPartitionKeyStrategy.OBFUSCATED_TYPE_NAME_AS_KEY_WITH_PARTITIONS;
+ MappingPartitionKeyStrategy.getDefaultStrategy();
public ProguardMapPartitionerBuilderImplInternal(DiagnosticsHandler diagnosticsHandler) {
super(diagnosticsHandler);
diff --git a/src/test/java/com/android/tools/r8/retrace/partition/RetracePartitionWithPrimitiveNameTest.java b/src/test/java/com/android/tools/r8/retrace/partition/RetracePartitionWithPrimitiveNameTest.java
new file mode 100644
index 0000000..a7ee197
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/retrace/partition/RetracePartitionWithPrimitiveNameTest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.retrace.partition;
+
+import static org.junit.Assert.assertThrows;
+
+import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestDiagnosticMessagesImpl;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.retrace.ProguardMapProducer;
+import com.android.tools.r8.retrace.internal.MappingPartitionKeyStrategy;
+import com.android.tools.r8.retrace.internal.ProguardMapPartitionerOnClassNameToText.ProguardMapPartitionerBuilderImplInternal;
+import com.android.tools.r8.utils.StringUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/** Regression test for b/286001537. */
+@RunWith(Parameterized.class)
+public class RetracePartitionWithPrimitiveNameTest extends TestBase {
+
+ @Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withNoneRuntime().build();
+ }
+
+ public RetracePartitionWithPrimitiveNameTest(TestParameters parameters) {
+ parameters.assertNoneRuntime();
+ }
+
+ public final String mapping =
+ StringUtils.unixLines(
+ "# { id: 'com.android.tools.r8.mapping', version: '2.0' }",
+ "some.class1 -> int:",
+ " void field -> a");
+
+ @Test
+ public void testPartitionAndRetrace() {
+ ProguardMapProducer proguardMapProducer = ProguardMapProducer.fromString(mapping);
+ TestDiagnosticMessagesImpl diagnosticsHandler = new TestDiagnosticMessagesImpl();
+ // TODO(b/286001537): We need to handle minified names matching primitive types.
+ assertThrows(
+ AssertionError.class,
+ () ->
+ new ProguardMapPartitionerBuilderImplInternal(diagnosticsHandler)
+ .setMappingPartitionKeyStrategy(MappingPartitionKeyStrategy.getDefaultStrategy())
+ .setProguardMapProducer(proguardMapProducer)
+ .setPartitionConsumer(partition -> {})
+ .build()
+ .run());
+ }
+}