| // Copyright (c) 2021, 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; |
| |
| public class OutlineInOutlineStackTrace implements StackTraceForTest { |
| |
| @Override |
| public List<String> obfuscatedStackTrace() { |
| return Arrays.asList( |
| "java.io.IOException: INVALID_SENDER", "\tat a.a(:4)", "\tat b.a(:6)", "\tat c.a(:28)"); |
| } |
| |
| @Override |
| public String mapping() { |
| return StringUtils.lines( |
| "# { id: 'com.android.tools.r8.mapping', version: '2.0' }", |
| "outline1.Class -> a:", |
| " 4:4:int outline():0:0 -> a", |
| "# { 'id':'com.android.tools.r8.outline' }", |
| "outline2.Class -> b:", |
| " 6:6:int outline():0:0 -> a", |
| "# { 'id':'com.android.tools.r8.outlineCallsite', 'positions': { '4': 43 } }", |
| " 42:43:int outline():0:0 -> a", |
| "# { 'id':'com.android.tools.r8.outline' }", |
| "some.Class -> c:", |
| " 1:1:void foo.bar.Baz.qux():42:42 -> a", |
| " 10:11:int outlineCaller(int):98:98 -> a", |
| " 28:28:int outlineCaller(int):0:0 -> a", |
| "# { 'id':'com.android.tools.r8.outlineCallsite', 'positions': { '42': 10, '43': 11 } }"); |
| } |
| |
| @Override |
| public List<String> retracedStackTrace() { |
| return Arrays.asList( |
| "java.io.IOException: INVALID_SENDER", "\tat some.Class.outlineCaller(Class.java:98)"); |
| } |
| |
| @Override |
| public List<String> retraceVerboseStackTrace() { |
| return Arrays.asList( |
| "java.io.IOException: INVALID_SENDER", |
| "\tat some.Class.int outlineCaller(int)(Class.java:98)"); |
| } |
| |
| @Override |
| public int expectedWarnings() { |
| return 0; |
| } |
| } |