Add support for -regex to match proguard and remapper
Change-Id: I2a66bbb96997d3d0bb39aa44ae47139c5e0c9dbb
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 6616a66..af2b520 100644
--- a/src/main/java/com/android/tools/r8/retrace/Retrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retrace.java
@@ -168,13 +168,30 @@
}
public static void run(String[] args) {
+ // To be compatible with standard retrace and remapper, we translate -arg into --arg.
+ String[] mappedArgs = new String[args.length];
+ boolean printInfo = false;
+ for (int i = 0; i < args.length; i++) {
+ String arg = args[i];
+ if (arg == null || arg.length() < 2) {
+ mappedArgs[i] = arg;
+ continue;
+ }
+ if (arg.charAt(0) == '-' && arg.charAt(1) != '-') {
+ mappedArgs[i] = "-" + arg;
+ } else {
+ mappedArgs[i] = arg;
+ }
+ if (mappedArgs[i].equals("--info")) {
+ printInfo = true;
+ }
+ }
RetraceDiagnosticsHandler retraceDiagnosticsHandler =
- new RetraceDiagnosticsHandler(
- new DiagnosticsHandler() {}, Arrays.asList(args).contains("--info"));
- Builder builder = parseArguments(args, retraceDiagnosticsHandler);
+ new RetraceDiagnosticsHandler(new DiagnosticsHandler() {}, printInfo);
+ Builder builder = parseArguments(mappedArgs, retraceDiagnosticsHandler);
if (builder == null) {
// --help was an argument to list
- assert Arrays.asList(args).contains("--help");
+ assert Arrays.asList(mappedArgs).contains("--help");
System.out.print(USAGE_MESSAGE);
return;
}
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 676149f..e8494d6 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceCommandLineTests.java
@@ -71,6 +71,18 @@
}
@Test
+ public void testVerboseSingleHyphen() throws IOException {
+ FoundMethodVerboseStackTrace stackTrace = new FoundMethodVerboseStackTrace();
+ // TODO(b/159562137): Add proper support for -verbose when using regexp.
+ runTestNotEquals(
+ stackTrace.mapping(),
+ StringUtils.joinLines(stackTrace.obfuscatedStackTrace()),
+ false,
+ StringUtils.joinLines(stackTrace.retracedStackTrace()) + StringUtils.LINE_SEPARATOR,
+ "-verbose");
+ }
+
+ @Test
public void testRegularExpression() throws IOException {
ActualRetraceBotStackTrace stackTrace = new ActualRetraceBotStackTrace();
runTest(
@@ -81,6 +93,16 @@
}
@Test
+ public void testRegularExpressionSingleHyphen() throws IOException {
+ ActualRetraceBotStackTrace stackTrace = new ActualRetraceBotStackTrace();
+ runTest(
+ stackTrace.mapping(),
+ StringUtils.joinLines(stackTrace.obfuscatedStackTrace()),
+ false,
+ StringUtils.joinLines(stackTrace.retracedStackTrace()) + StringUtils.LINE_SEPARATOR);
+ }
+
+ @Test
public void testRegularExpressionWithInfo() throws IOException {
ActualRetraceBotStackTraceWithInfo stackTrace = new ActualRetraceBotStackTraceWithInfo();
runTest(