[Retrace] Throw IOException for stack trace file
Bug: 187955695
Change-Id: Ie886608b59e8fca5f7682e01c193ca05f903e265
diff --git a/src/main/java/com/android/tools/r8/retrace/Retrace.java b/src/main/java/com/android/tools/r8/retrace/Retrace.java
index 63d0098..62c04bb 100644
--- a/src/main/java/com/android/tools/r8/retrace/Retrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retrace.java
@@ -131,7 +131,7 @@
try {
return Files.readAllLines(Paths.get(stackTracePath), Charsets.UTF_8);
} catch (IOException e) {
- diagnostics.error(new StringDiagnostic("Could not find stack trace file: " + stackTracePath));
+ diagnostics.error(new ExceptionDiagnostic(e));
throw new RetraceAbortException();
}
}
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 cd839f1..c1a704e 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
@@ -54,7 +54,7 @@
private final boolean testExternal;
- @Parameters(name = "{0}")
+ @Parameters(name = "external: {0}")
public static Boolean[] data() {
return BooleanUtils.values();
}
@@ -96,6 +96,13 @@
}
@Test
+ public void testMissingStackTraceFile() throws IOException {
+ Path mappingFile = folder.newFile("mapping.txt").toPath();
+ Files.write(mappingFile, "foo.bar.baz -> foo:".getBytes());
+ runAbortTest(containsString("NoSuchFileException"), mappingFile.toString(), "stacktrace.txt");
+ }
+
+ @Test
public void testVerbose() throws IOException {
FoundMethodVerboseStackTrace stackTrace = new FoundMethodVerboseStackTrace();
runTest(