| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 from common.dependency import Dependency | 5 from common.dependency import Dependency |
| 6 from crash.callstack import StackFrame, CallStack | 6 from crash.callstack import StackFrame, CallStack |
| 7 from crash.test.stacktrace_test_suite import StacktraceTestSuite | 7 from crash.test.stacktrace_test_suite import StacktraceTestSuite |
| 8 from crash.type_enums import CallStackFormatType | 8 from crash.type_enums import CallStackFormatType |
| 9 | 9 |
| 10 | 10 |
| 11 class CallStackTest(StacktraceTestSuite): | 11 class CallStackTest(StacktraceTestSuite): |
| 12 | 12 |
| 13 def testStackFrameToString(self): | 13 def testStackFrameToString(self): |
| 14 self.assertEqual( | 14 self.assertEqual( |
| 15 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []).ToString(), | 15 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []).ToString(), |
| 16 '#0 in func @ f.cc') | 16 '#0 in func @ f.cc') |
| 17 self.assertEqual( | 17 self.assertEqual( |
| 18 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1]).ToString(), | 18 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1]).ToString(), |
| 19 '#0 in func @ f.cc:1') | 19 '#0 in func @ f.cc:1') |
| 20 self.assertEqual( | 20 self.assertEqual( |
| 21 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1, 2]).ToString(), | 21 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1, 2]).ToString(), |
| 22 '#0 in func @ f.cc:1:1') | 22 '#0 in func @ f.cc:1:1') |
| 23 | 23 |
| 24 def testBlameUrlForStackFrame(self): |
| 25 frame = StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []) |
| 26 self.assertEqual(frame.BlameUrl('1'), None) |
| 27 |
| 28 frame.repo_url = 'https://repo_url' |
| 29 self.assertEqual(frame.BlameUrl('1'), 'https://repo_url/+blame/1/f.cc') |
| 30 |
| 31 frame.crashed_line_numbers = [9, 10] |
| 32 self.assertEqual(frame.BlameUrl('1'), 'https://repo_url/+blame/1/f.cc#9') |
| 33 |
| 24 def testFrameListInitCallStack(self): | 34 def testFrameListInitCallStack(self): |
| 25 stack = CallStack(0) | 35 stack = CallStack(0) |
| 26 stack.extend([StackFrame(0, 'src/', '', 'func', 'f.cc', [2])]) | 36 stack.extend([StackFrame(0, 'src/', '', 'func', 'f.cc', [2])]) |
| 27 | 37 |
| 28 copy_stack = CallStack(stack.priority, frame_list=stack) | 38 copy_stack = CallStack(stack.priority, frame_list=stack) |
| 29 self._VerifyTwoCallStacksEqual(copy_stack, stack) | 39 self._VerifyTwoCallStacksEqual(copy_stack, stack) |
| 30 | 40 |
| 31 def testParseLineForJavaCallstackFormat(self): | 41 def testParseLineForJavaCallstackFormat(self): |
| 32 stack = CallStack(0, CallStackFormatType.JAVA) | 42 stack = CallStack(0, CallStackFormatType.JAVA) |
| 33 | 43 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 61 | 71 |
| 62 stack.ParseLine('#dummy line', {}) | 72 stack.ParseLine('#dummy line', {}) |
| 63 self.assertEqual(stack, []) | 73 self.assertEqual(stack, []) |
| 64 | 74 |
| 65 deps = {'tp/webrtc/': Dependency('tp/webrtc/', 'https://repo', '1')} | 75 deps = {'tp/webrtc/': Dependency('tp/webrtc/', 'https://repo', '1')} |
| 66 stack.ParseLine('#0 0x52617a in func0 tp/webrtc/a.c:38:3', deps) | 76 stack.ParseLine('#0 0x52617a in func0 tp/webrtc/a.c:38:3', deps) |
| 67 self._VerifyTwoStackFramesEqual( | 77 self._VerifyTwoStackFramesEqual( |
| 68 stack[0], | 78 stack[0], |
| 69 StackFrame( | 79 StackFrame( |
| 70 0, 'tp/webrtc/', 'func0', 'a.c', 'tp/webrtc/a.c', [38, 39, 40, 41])) | 80 0, 'tp/webrtc/', 'func0', 'a.c', 'tp/webrtc/a.c', [38, 39, 40, 41])) |
| OLD | NEW |