[Retrace] Throw InvalidMinifiedRangeStackTrace for invalid ranges
Bug: b/272032896
Change-Id: Iabf025efbf4243707d62658f5c8cd48e3a4cc7f2
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
index 47bcc73..7af0129 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
@@ -807,6 +807,9 @@
expect(':');
skipWhitespace();
int to = parseNumber();
+ if (from > to) {
+ throw new ParseException("From is larger than to in range: " + from + ":" + to);
+ }
return nonCardinalRangeCache.get(from, to);
}
diff --git a/src/test/java/com/android/tools/r8/retrace/RetraceTests.java b/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
index 2a11144..d06cbe6 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
@@ -463,15 +463,17 @@
@Test
public void testInvalidMinifiedRangeStackTrace() {
assumeFalse(external);
- // TODO(b/272032896): Should be InvalidMappingFileException
- assertThrows(AssertionError.class, () -> runRetraceTest(new InvalidMinifiedRangeStackTrace()));
+ assertThrows(
+ InvalidMappingFileException.class,
+ () -> runRetraceTest(new InvalidMinifiedRangeStackTrace()));
}
@Test
public void testInvalidOriginalRangeStackTrace() {
assumeFalse(external);
- // TODO(b/272032896): Should be InvalidMappingFileException
- assertThrows(AssertionError.class, () -> runRetraceTest(new InvalidOriginalRangeStackTrace()));
+ assertThrows(
+ InvalidMappingFileException.class,
+ () -> runRetraceTest(new InvalidOriginalRangeStackTrace()));
}
private void inspectRetraceTest(