| 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_detectors import StartOfCallStack |
| 6 from crash.stacktrace import CallStack | 7 from crash.stacktrace import CallStack |
| 7 from crash.stacktrace import CallStackBuffer | 8 from crash.stacktrace import CallStackBuffer |
| 8 from crash.stacktrace import StackFrame | 9 from crash.stacktrace import StackFrame |
| 9 from crash.stacktrace import Stacktrace | 10 from crash.stacktrace import Stacktrace |
| 10 from crash.stacktrace import StacktraceBuffer | 11 from crash.stacktrace import StacktraceBuffer |
| 11 from crash.test.stacktrace_test_suite import StacktraceTestSuite | 12 from crash.test.stacktrace_test_suite import StacktraceTestSuite |
| 12 from crash.type_enums import CallStackFormatType | 13 from crash.type_enums import CallStackFormatType |
| 13 from crash.type_enums import LanguageType | 14 from crash.type_enums import LanguageType |
| 14 | 15 |
| 15 | 16 |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 expected_callstack = CallStack(stack_buffer.priority, | 150 expected_callstack = CallStack(stack_buffer.priority, |
| 150 tuple(frame_list), | 151 tuple(frame_list), |
| 151 CallStackFormatType.DEFAULT, | 152 CallStackFormatType.DEFAULT, |
| 152 LanguageType.CPP) | 153 LanguageType.CPP) |
| 153 self.assertTupleEqual(stack_buffer.ToCallStack(), expected_callstack) | 154 self.assertTupleEqual(stack_buffer.ToCallStack(), expected_callstack) |
| 154 | 155 |
| 155 def testToCallStackForEmptyCallStackBuffer(self): | 156 def testToCallStackForEmptyCallStackBuffer(self): |
| 156 """Tests ``ToCallStack`` for empty ``CallStackBuffer`` object.""" | 157 """Tests ``ToCallStack`` for empty ``CallStackBuffer`` object.""" |
| 157 self.assertIsNone(CallStackBuffer(0, frame_list=[]).ToCallStack()) | 158 self.assertIsNone(CallStackBuffer(0, frame_list=[]).ToCallStack()) |
| 158 | 159 |
| 160 def testFromNoneStartOfCallStack(self): |
| 161 """Tests ``FromStartOfCallStack`` with None input.""" |
| 162 self.assertIsNone(CallStackBuffer.FromStartOfCallStack(None)) |
| 163 |
| 164 def testFromStartOfCallStack(self): |
| 165 """Tests ``FromStartOfCallStack`` with ``StartOfCallStack`` input.""" |
| 166 start_of_callstack = StartOfCallStack(0, CallStackFormatType.DEFAULT, |
| 167 LanguageType.CPP, {'pid': 123}) |
| 168 stack_buffer = CallStackBuffer.FromStartOfCallStack(start_of_callstack) |
| 169 self.assertEqual(stack_buffer.priority, start_of_callstack.priority) |
| 170 self.assertEqual(stack_buffer.format_type, start_of_callstack.format_type) |
| 171 self.assertEqual(stack_buffer.language_type, |
| 172 start_of_callstack.language_type) |
| 173 self.assertDictEqual(stack_buffer.metadata, start_of_callstack.metadata) |
| 174 |
| 159 | 175 |
| 160 class StacktraceTest(StacktraceTestSuite): | 176 class StacktraceTest(StacktraceTestSuite): |
| 161 | 177 |
| 162 def testStacktraceLen(self): | 178 def testStacktraceLen(self): |
| 163 """Tests ``len`` for ``Stacktrace`` object.""" | 179 """Tests ``len`` for ``Stacktrace`` object.""" |
| 164 frame_list1 = [ | 180 frame_list1 = [ |
| 165 StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32])] | 181 StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32])] |
| 166 | 182 |
| 167 frame_list2 = [ | 183 frame_list2 = [ |
| 168 StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])] | 184 StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])] |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 | 300 |
| 285 stacktrace_buffer = StacktraceBuffer(filters=[_MockKeepFirstFrame]) | 301 stacktrace_buffer = StacktraceBuffer(filters=[_MockKeepFirstFrame]) |
| 286 stacktrace_buffer.AddFilteredStack(stack_buffer) | 302 stacktrace_buffer.AddFilteredStack(stack_buffer) |
| 287 self._VerifyTwoCallStacksEqual( | 303 self._VerifyTwoCallStacksEqual( |
| 288 stacktrace_buffer.stacks[0], | 304 stacktrace_buffer.stacks[0], |
| 289 CallStackBuffer(stack_buffer.priority, frame_list=frame_list[:1])) | 305 CallStackBuffer(stack_buffer.priority, frame_list=frame_list[:1])) |
| 290 | 306 |
| 291 def testEmptyStacktraceBufferToStacktrace(self): | 307 def testEmptyStacktraceBufferToStacktrace(self): |
| 292 """Tests that ``ToStacktrace`` returns None for empty stacktrace buffer.""" | 308 """Tests that ``ToStacktrace`` returns None for empty stacktrace buffer.""" |
| 293 self.assertIsNone(StacktraceBuffer([]).ToStacktrace()) | 309 self.assertIsNone(StacktraceBuffer([]).ToStacktrace()) |
| OLD | NEW |