| // 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 com.android.tools.r8.utils.StringUtils; |
| import java.util.Arrays; |
| import java.util.List; |
| |
| /** |
| * This is testing the string representation of stack trace elements with built-in class loaders and |
| * named/unnamed modules: |
| * https://docs.oracle.com/javase/10/docs/api/java/lang/StackTraceElement.html#toString() |
| */ |
| public class NamedModuleStackTrace implements StackTraceForTest { |
| |
| @Override |
| public List<String> obfuscatedStackTrace() { |
| return Arrays.asList( |
| "SomeFakeException: this is a fake exception", |
| "\tat classloader.a.b.a/named_module@9.0/a.a(:101)", |
| "\tat classloader.a.b.a//a.b(App.java:12)", |
| "\tat named_module@2.1/a.c(Lib.java:80)", |
| "\tat named_module/a.d(Lib.java:81)", |
| "\tat a.e(MyClass.java:9)"); |
| } |
| |
| @Override |
| public String mapping() { |
| return StringUtils.joinLines( |
| "com.android.tools.r8.Classloader -> classloader.a.b.a:", |
| "com.android.tools.r8.Main -> a:", |
| " 101:101:void main(java.lang.String[]):1:1 -> a", |
| " 12:12:void foo(java.lang.String[]):2:2 -> b", |
| " 80:80:void bar(java.lang.String[]):3:3 -> c", |
| " 81:81:void baz(java.lang.String[]):4:4 -> d", |
| " 9:9:void qux(java.lang.String[]):5:5 -> e"); |
| } |
| |
| @Override |
| public List<String> retracedStackTrace() { |
| return Arrays.asList( |
| "SomeFakeException: this is a fake exception", |
| "\tat com.android.tools.r8.Classloader/named_module@9.0/com.android.tools.r8.Main.main(Main.java:1)", |
| "\tat com.android.tools.r8.Classloader//com.android.tools.r8.Main.foo(Main.java:2)", |
| "\tat named_module@2.1/com.android.tools.r8.Main.bar(Main.java:3)", |
| "\tat named_module/com.android.tools.r8.Main.baz(Main.java:4)", |
| "\tat com.android.tools.r8.Main.qux(Main.java:5)"); |
| } |
| |
| @Override |
| public int expectedWarnings() { |
| return 0; |
| } |
| } |