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

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

Issue 2593383002: [Predator] Move ``FilterStackBuffer`` from stack parser to ``AddFilteredStack`` of stacktrace buffe… (Closed)
Patch Set: . Created 4 years 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
(Empty)
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
3 # found in the LICENSE file.
4
5 from crash import callstack_filters
6 from crash.stacktrace import CallStackBuffer
7 from crash.stacktrace import StackFrame
8 from crash.stacktrace_parser import StacktraceParser
9 from crash.test.stacktrace_test_suite import StacktraceTestSuite
10
11
12 class DummyFilter(callstack_filters.CallStackFilter):
13
14 def __call__(self, stack_buffer): # pragma: no cover
15 return stack_buffer
16
17
18 class StacktraceParserTest(StacktraceTestSuite):
19
20 def testFilterInfinityPriorityStackBuffer(self):
21 """Tests ``FilterStackBuffer`` return None for inf priority stack buffer."""
22 stack_buffer = CallStackBuffer(priority=float('inf'))
23 self.assertIsNone(StacktraceParser.FilterStackBuffer(stack_buffer,
24 [DummyFilter()]))
25
26 def testFilterEmptyStackBuffer(self):
27 """Tests ``FilterStackBuffer`` return None for empty stack buffer."""
28 stack_buffer = CallStackBuffer(frame_list=[])
29 self.assertIsNone(StacktraceParser.FilterStackBuffer(stack_buffer,
30 [DummyFilter()]))
31
32 def testFilterAllFrames(self):
33 """Tests ``FilterStackBuffer`` filters all frames and resturn None."""
34 frame_list = [
35 StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32]),
36 StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])]
37 stack_buffer = CallStackBuffer(0, frame_list=frame_list)
38
39 def _MockFilter(stack_buffer):
40 stack_buffer.frames = None
41 return stack_buffer
42
43 self.assertIsNone(StacktraceParser.FilterStackBuffer(
44 stack_buffer,
45 filters=[_MockFilter]))
46
47 def testFilterSomeFrames(self):
48 """Tests ``FilterStackBuffer`` filters some frames."""
49 frame_list = [
50 StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32]),
51 StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])]
52 stack_buffer = CallStackBuffer(0, frame_list=frame_list)
53
54 def _MockFilter(stack):
55 stack.frames = stack.frames[:1]
56 return stack
57
58 self._VerifyTwoCallStacksEqual(
59 StacktraceParser.FilterStackBuffer(stack_buffer, filters=[_MockFilter]),
60 CallStackBuffer(stack_buffer.priority, frame_list=frame_list[:1]))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698