blob: 8bd402f235d545a34858d0124a3fe1925796ec0e [file] [log] [blame]
// 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;
}
}