Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Side by Side Diff: appengine/findit/crash/test/stacktrace_test.py

Issue 1980203002: [Findit] Filter inline function path frames (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 crash.callstack import CallStack 5 from crash.callstack import CallStack
6 from crash.callstack import StackFrame
6 from crash.stacktrace import Stacktrace 7 from crash.stacktrace import Stacktrace
7 8
8 from testing_utils import testing 9 from crash.test.stacktrace_test_suite import StacktraceTestSuite
9 10
10 11
11 class StacktraceTest(testing.AppengineTestCase): 12 class StacktraceTest(StacktraceTestSuite):
12 13
13 def testGetCrashStack(self): 14 def testCrashStackForStacktraceWithoutSignature(self):
14 stack_trace = Stacktrace() 15 frame_list1 = [
15 self.assertEqual(stack_trace.GetCrashStack(), None) 16 StackFrame(0, 'src/', '', 'func', 'file0.cc', [32])]
17
18 frame_list2 = [
19 StackFrame(0, 'src/', '', 'func2', 'file0.cc', [32])]
20
21 stacktrace = Stacktrace([CallStack(0, frame_list=frame_list1),
22 CallStack(1, frame_list=frame_list2)])
23 expected_crash_stack = CallStack(0, frame_list=frame_list1)
24
25 self._VerifyTwoCallStacksEqual(stacktrace.crash_stack, expected_crash_stack)
26
27 def testFilterFramesBeforeSignatureForCrashStack(self):
28 frame_list1 = [
29 StackFrame(0, 'src/', '', 'func', 'file0.cc', [32]),
30 ]
31 callstack1 = CallStack(0, frame_list=frame_list1)
32
33 frame_list2 = [
34 StackFrame(0, 'src/', '', 'func', 'file0.cc', [32]),
35 StackFrame(1, 'src/', '', 'signature_func', 'file1.cc', [53]),
36 StackFrame(2, 'src/', '', 'funcc', 'file2.cc', [3])
37 ]
38 callstack2 = CallStack(0, frame_list=frame_list2)
39
40 stacktrace = Stacktrace([callstack1, callstack2], 'signature')
41
42 expected_frame_list = [
43 StackFrame(1, 'src/', '', 'signature_func', 'file1.cc', [53]),
44 StackFrame(2, 'src/', '', 'funcc', 'file2.cc', [3])]
45 expected_crash_stack = CallStack(0, frame_list=expected_frame_list)
46
47 self._VerifyTwoCallStacksEqual(stacktrace.crash_stack,
48 expected_crash_stack)
49
50 def testNoSignatureMatchForCrashStack(self):
51 frame_list = [
52 StackFrame(0, 'src/', '', 'func', 'file0.cc', [32]),
53 ]
54 callstack = CallStack(0, frame_list=frame_list)
55
56 stacktrace = Stacktrace([callstack], 'signature')
57
58 expected_frame_list = frame_list
59 expected_crash_stack = CallStack(0, frame_list=expected_frame_list)
60
61 self._VerifyTwoCallStacksEqual(stacktrace.crash_stack,
62 expected_crash_stack)
63
64 def testCrashStackFallBackToFirstLeastPriorityCallStack(self):
65 stacktrace = Stacktrace()
66 self.assertEqual(stacktrace.crash_stack, None)
16 67
17 callstack_list = [CallStack(0), CallStack(1)] 68 callstack_list = [CallStack(0), CallStack(1)]
18 stack_trace.extend(callstack_list) 69 stacktrace.extend(callstack_list)
19 70
20 self.assertEqual(stack_trace.GetCrashStack(), callstack_list[0]) 71 self.assertEqual(stacktrace.crash_stack, callstack_list[0])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698