[Retrace] Add test for missing sourcefile regexp and ambiguous map
Bug: 216359244
Change-Id: I00b48139f099bb058a2eccf33d43b210360fdaf5
diff --git a/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java b/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java
index b769752..fe8cd5b 100644
--- a/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java
@@ -944,6 +944,48 @@
});
}
+ /* This is a regression test for b/216359244 */
+ // TODO(b/216359244): Should not fail with an NPE.
+ @Test(expected = NullPointerException.class)
+ public void testMissingSourceFile() {
+ runRetraceTest(
+ ".*FOO\\s+:\\s+\\[\\d+\\]\\s+%c\\.%m\\(%l\\):.*",
+ new StackTraceForTest() {
+ @Override
+ public List<String> obfuscatedStackTrace() {
+ return ImmutableList.of(
+ "12-24 19:53:19.052 10197 30302 30302 I FOO : [2] huk.g(1): getDownloads()");
+ }
+
+ @Override
+ public String mapping() {
+ return "foo.Bar -> huk:\n" + " void baz():13:13 -> g\n" + " void qux():12:12 -> g\n";
+ }
+
+ @Override
+ public List<String> retracedStackTrace() {
+ return ImmutableList.of(
+ "12-24 19:53:19.052 10197 30302 30302 I FOO : [2] foo.Bar.baz(13): getDownloads()",
+ "<OR> 12-24 19:53:19.052 10197 30302 30302 I FOO : [2] foo.Bar.qux(12):"
+ + " getDownloads()");
+ }
+
+ @Override
+ public List<String> retraceVerboseStackTrace() {
+ return ImmutableList.of(
+ "12-24 19:53:19.052 10197 30302 30302 I FOO : [2] foo.Bar.void baz()(13):"
+ + " getDownloads()",
+ "<OR> 12-24 19:53:19.052 10197 30302 30302 I FOO : [2] foo.Bar.void qux()(12):"
+ + " getDownloads()");
+ }
+
+ @Override
+ public int expectedWarnings() {
+ return 0;
+ }
+ });
+ }
+
private TestDiagnosticMessagesImpl runRetraceTest(
String regularExpression, StackTraceForTest stackTraceForTest) {
TestDiagnosticMessagesImpl diagnosticsHandler = new TestDiagnosticMessagesImpl();
diff --git a/tools/retrace.py b/tools/retrace.py
index 14593ab..22753fb 100755
--- a/tools/retrace.py
+++ b/tools/retrace.py
@@ -61,6 +61,11 @@
default=None,
action='store_true',
help='Enables verbose retracing.')
+ parser.add_argument(
+ '--disable-map-validation',
+ default=None,
+ action='store_true',
+ help='Disable validation of map hash.')
return parser.parse_args()
@@ -108,7 +113,7 @@
print(e)
print('WARNING: Falling back to using local mapping file.')
- if map_path:
+ if map_path and not args.disable_map_validation:
check_maphash(map_path, maphash)
return map_path