| 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.stacktrace import StackFrame | 6 from crash.stacktrace import StackFrame |
| 7 from crash.stacktrace import CallStack | 7 from crash.stacktrace import CallStack |
| 8 from crash.stacktrace import Stacktrace | 8 from crash.stacktrace import Stacktrace |
| 9 from crash.test.stacktrace_test_suite import StacktraceTestSuite | 9 from crash.test.stacktrace_test_suite import StacktraceTestSuite |
| 10 from crash.type_enums import CallStackFormatType | 10 from crash.type_enums import CallStackFormatType |
| 11 from crash.type_enums import CallStackLanguageType | 11 from crash.type_enums import CallStackLanguageType |
| 12 | 12 |
| 13 class CallStackTest(StacktraceTestSuite): | 13 class CallStackTest(StacktraceTestSuite): |
| 14 | 14 |
| 15 def testStackFrameToString(self): | 15 def testStackFrameToString(self): |
| 16 self.assertEqual( | 16 self.assertEqual( |
| 17 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []).ToString(), | 17 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []).ToString(), |
| 18 '#0 in func @ f.cc') | 18 '#0 in func @ f.cc') |
| 19 self.assertEqual( | 19 self.assertEqual( |
| 20 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1]).ToString(), | 20 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1]).ToString(), |
| 21 '#0 in func @ f.cc:1') | 21 '#0 in func @ f.cc:1') |
| 22 self.assertEqual( | 22 self.assertEqual( |
| 23 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1, 2]).ToString(), | 23 StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', [1, 2]).ToString(), |
| 24 '#0 in func @ f.cc:1:1') | 24 '#0 in func @ f.cc:1:1') |
| 25 | 25 |
| 26 def testBlameUrlForStackFrame(self): | 26 def testBlameUrlForStackFrame(self): |
| 27 frame = StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []) | 27 frame = StackFrame(0, 'src/', 'func', 'f.cc', 'src/f.cc', []) |
| 28 self.assertEqual(frame.BlameUrl('1'), None) | 28 self.assertEqual(frame.BlameUrl('1'), None) |
| 29 | 29 |
| 30 frame.repo_url = 'https://repo_url' | 30 frame = frame._replace(repo_url = 'https://repo_url') |
| 31 self.assertEqual(frame.BlameUrl('1'), 'https://repo_url/+blame/1/f.cc') | 31 self.assertEqual(frame.BlameUrl('1'), 'https://repo_url/+blame/1/f.cc') |
| 32 | 32 |
| 33 frame.crashed_line_numbers = [9, 10] | 33 frame = frame._replace(crashed_line_numbers = [9, 10]) |
| 34 self.assertEqual(frame.BlameUrl('1'), 'https://repo_url/+blame/1/f.cc#9') | 34 self.assertEqual(frame.BlameUrl('1'), 'https://repo_url/+blame/1/f.cc#9') |
| 35 | 35 |
| 36 def testFrameListInitCallStack(self): | 36 def testFrameListInitCallStack(self): |
| 37 stack = CallStack(0) | 37 stack = CallStack(0) |
| 38 stack.extend([StackFrame(0, 'src/', '', 'func', 'f.cc', [2])]) | 38 stack.extend([StackFrame(0, 'src/', '', 'func', 'f.cc', [2])]) |
| 39 | 39 |
| 40 copy_stack = CallStack(stack.priority, frame_list=stack) | 40 copy_stack = CallStack(stack.priority, frame_list=stack) |
| 41 self._VerifyTwoCallStacksEqual(copy_stack, stack) | 41 self._VerifyTwoCallStacksEqual(copy_stack, stack) |
| 42 | 42 |
| 43 def testParseLineForJavaCallstackFormat(self): | 43 def testParseLineForJavaCallstackFormat(self): |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 stacktrace.extend(callstack_list) | 163 stacktrace.extend(callstack_list) |
| 164 | 164 |
| 165 self._VerifyTwoCallStacksEqual(stacktrace.crash_stack, | 165 self._VerifyTwoCallStacksEqual(stacktrace.crash_stack, |
| 166 callstack_list[0]) | 166 callstack_list[0]) |
| 167 | 167 |
| 168 def testInitStacktaceByCopyAnother(self): | 168 def testInitStacktaceByCopyAnother(self): |
| 169 stack_trace = Stacktrace() | 169 stack_trace = Stacktrace() |
| 170 stack_trace.extend([CallStack(0), CallStack(1)]) | 170 stack_trace.extend([CallStack(0), CallStack(1)]) |
| 171 | 171 |
| 172 self._VerifyTwoStacktracesEqual(Stacktrace(stack_trace), stack_trace) | 172 self._VerifyTwoStacktracesEqual(Stacktrace(stack_trace), stack_trace) |
| OLD | NEW |