[Retrace] Synthesize source file name when reading 'PG'
Bug: 168844912
Change-Id: I8356254493d2ed92d9f1c77f49abca208500a1c5
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceUtils.java b/src/main/java/com/android/tools/r8/retrace/RetraceUtils.java
index 8e862d0..fd569b1 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceUtils.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceUtils.java
@@ -14,7 +14,7 @@
public class RetraceUtils {
private static final Set<String> UNKNOWN_SOURCEFILE_NAMES =
- Sets.newHashSet("", "SourceFile", "Unknown", "Unknown Source");
+ Sets.newHashSet("", "SourceFile", "Unknown", "Unknown Source", "PG");
public static String methodDescriptionFromMethodReference(
MethodReference methodReference, boolean appendHolder, boolean verbose) {
diff --git a/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java b/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
index acf4aff..8a0f5e5 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.retrace.stacktraces.ActualRetraceBotStackTrace;
import com.android.tools.r8.retrace.stacktraces.ActualRetraceBotStackTraceWithInfo;
import com.android.tools.r8.retrace.stacktraces.FoundMethodVerboseStackTrace;
+import com.android.tools.r8.retrace.stacktraces.PGStackTrace;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.base.Charsets;
import java.io.ByteArrayOutputStream;
@@ -117,6 +118,16 @@
}
@Test
+ public void testPGStackTrace() throws Exception {
+ PGStackTrace pgStackTrace = new PGStackTrace();
+ runTest(
+ pgStackTrace.mapping(),
+ StringUtils.joinLines(pgStackTrace.obfuscatedStackTrace()),
+ false,
+ StringUtils.joinLines(pgStackTrace.retracedStackTrace()) + StringUtils.LINE_SEPARATOR);
+ }
+
+ @Test
public void testEmpty() throws IOException {
runTest("", "", false, "");
}
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/PGStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/PGStackTrace.java
new file mode 100644
index 0000000..2732b34
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/PGStackTrace.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2020, 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.stacktraces;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class PGStackTrace implements StackTraceForTest {
+
+ @Override
+ public List<String> obfuscatedStackTrace() {
+ return Arrays.asList(
+ "09-16 15:43:01.249 23316 23316 E AndroidRuntime: java.lang.NullPointerException: Attempt"
+ + " to invoke virtual method 'boolean"
+ + " com.google.android.foo(com.google.android.foo.Data$Key)' on a null object"
+ + " reference",
+ "09-16 15:43:01.249 23316 23316 E AndroidRuntime: at"
+ + " com.google.apps.sectionheader.SectionHeaderListController.onToolbarStateChanged(PG:586)",
+ "09-16 15:43:01.249 23316 23316 E AndroidRuntime: at"
+ + " com.google.apps.Controller.onToolbarStateChanged(PG:1087)");
+ }
+
+ @Override
+ public String mapping() {
+ return "";
+ }
+
+ @Override
+ public List<String> retracedStackTrace() {
+ return Arrays.asList(
+ "09-16 15:43:01.249 23316 23316 E AndroidRuntime: java.lang.NullPointerException: Attempt"
+ + " to invoke virtual method 'boolean"
+ + " com.google.android.foo(com.google.android.foo.Data$Key)' on a null object"
+ + " reference",
+ "09-16 15:43:01.249 23316 23316 E AndroidRuntime: at"
+ + " com.google.apps.sectionheader.SectionHeaderListController.onToolbarStateChanged(SectionHeaderListController.java:586)",
+ "09-16 15:43:01.249 23316 23316 E AndroidRuntime: at"
+ + " com.google.apps.Controller.onToolbarStateChanged(Controller.java:1087)");
+ }
+
+ @Override
+ public int expectedWarnings() {
+ return 0;
+ }
+}