def testToCallStackForNonEmptyCallStackBuffer(self): """Tests ``ToCallStack`` for non empty ``CallStackBuffer`` object.""" frame_list = [ StackFrame(0, 'repo/path', 'func', 'a/c.cc', 'a/c.cc', [3, 4], 'https://repo') ] stack_buffer = CallStackBuffer(0, frame_list=frame_list) expected_callstack = CallStack(stack_buffer.priority, tuple(frame_list), CallStackFormatType.DEFAULT, LanguageType.CPP) self.assertTupleEqual(stack_buffer.ToCallStack(), expected_callstack)
def testStacktraceBufferWithoutSignature(self): """Tests using least priority stack as crash_stack without signature.""" frame_list1 = [ StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32]) ] frame_list2 = [ StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32]) ] stack1 = CallStackBuffer(0, frame_list=frame_list1) stack2 = CallStackBuffer(1, frame_list=frame_list2) stacktrace = StacktraceBuffer([stack1, stack2]).ToStacktrace() self._VerifyTwoCallStacksEqual(stacktrace.crash_stack, stack1.ToCallStack())
def testSettingStackWithIsSignatureStackMetaDataAsCrashStack(self): """Tests using stack with signature as crash_stack with signature.""" frame_list1 = [ StackFrame(0, 'src', 'func', 'file0.cc', 'src/file0.cc', [32]) ] frame_list2 = [ StackFrame(0, 'src', 'signature_func2', 'f.cc', 'src/f.cc', [32]) ] stack1 = CallStackBuffer(0, frame_list=frame_list1, metadata={'is_signature_stack': True}) stack2 = CallStackBuffer(1, frame_list=frame_list2) stacktrace = StacktraceBuffer([stack1, stack2]).ToStacktrace() self._VerifyTwoCallStacksEqual(stacktrace.crash_stack, stack1.ToCallStack())