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

Unified Diff: appengine/findit/crash/test/stacktrace_test.py

Issue 2593383002: [Predator] Move ``FilterStackBuffer`` from stack parser to ``AddFilteredStack`` of stacktrace buffe… (Closed)
Patch Set: Rebase 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/findit/crash/test/callstack_filters_test.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/crash/test/stacktrace_test.py
diff --git a/appengine/findit/crash/test/stacktrace_test.py b/appengine/findit/crash/test/stacktrace_test.py
index b18d5dde4ec78cf7323ebb1cf588ba1adf740bf6..8212b944e85f5b25e13125e33bb9343d15efb68b 100644
--- a/appengine/findit/crash/test/stacktrace_test.py
+++ b/appengine/findit/crash/test/stacktrace_test.py
@@ -202,11 +202,13 @@ class StacktraceTest(StacktraceTestSuite):
class StacktraceBufferTest(StacktraceTestSuite):
+ def _DummyFilter(self, stack_buffer): # pragma: no cover
+ return stack_buffer
+
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])]
@@ -230,6 +232,62 @@ class StacktraceBufferTest(StacktraceTestSuite):
self._VerifyTwoCallStacksEqual(stacktrace.crash_stack, stack2.ToCallStack())
+ def testAddFitleredStackWithNoFilters(self):
+ """Tests that ``AddFilteredStack`` returns None if there is no filters."""
+ frame_list = [
+ StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32]),
+ StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])]
+ stack_buffer = CallStackBuffer(0, frame_list=frame_list)
+ stacktrace_buffer = StacktraceBuffer()
+ stacktrace_buffer.AddFilteredStack(stack_buffer)
+ self.assertEqual(len(stacktrace_buffer.stacks), 1)
+
+ def testFilterInfinityPriorityStackBuffer(self):
+ """Tests that ``AddFilteredStack`` returns None for inf priority stack."""
+ stack_buffer = CallStackBuffer(priority=float('inf'))
+ stacktrace_buffer = StacktraceBuffer(filters=[self._DummyFilter])
+ stacktrace_buffer.AddFilteredStack(stack_buffer)
+ self.assertEqual(len(stacktrace_buffer.stacks), 0)
+
+ def testFilterEmptyStackBuffer(self):
+ """Tests that ``AddFilteredStack`` returns None for empty stack buffer."""
+ stack_buffer = CallStackBuffer(frame_list=[])
+ stacktrace_buffer = StacktraceBuffer(filters=[self._DummyFilter])
+ stacktrace_buffer.AddFilteredStack(stack_buffer)
+ self.assertEqual(len(stacktrace_buffer.stacks), 0)
+
+ def testFilterAllFrames(self):
+ """Tests that ``AddFilteredStack`` filters all frames and resturns None."""
+ frame_list = [
+ StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32]),
+ StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])]
+ stack_buffer = CallStackBuffer(0, frame_list=frame_list)
+
+ def _MockFilterAllFrames(stack_buffer):
+ stack_buffer.frames = None
+ return stack_buffer
+
+ stacktrace_buffer = StacktraceBuffer(filters=[_MockFilterAllFrames])
+ stacktrace_buffer.AddFilteredStack(stack_buffer)
+ self.assertEqual(len(stacktrace_buffer.stacks), 0)
+
+ def testFilterSomeFrames(self):
+ """Tests that ``AddFilteredStack`` filters some frames."""
+ frame_list = [
+ StackFrame(0, 'src/', 'func', 'file0.cc', 'src/file0.cc', [32]),
+ StackFrame(0, 'src/', 'func2', 'file0.cc', 'src/file0.cc', [32])]
+ stack_buffer = CallStackBuffer(0, frame_list=frame_list)
+
+ def _MockKeepFirstFrame(stack):
+ stack.frames = stack.frames[:1]
+ return stack
+
+ stacktrace_buffer = StacktraceBuffer(filters=[_MockKeepFirstFrame])
+ stacktrace_buffer.AddFilteredStack(stack_buffer)
+ self._VerifyTwoCallStacksEqual(
+ stacktrace_buffer.stacks[0],
+ CallStackBuffer(stack_buffer.priority, frame_list=frame_list[:1]))
+
def testEmptyStacktraceBufferToStacktrace(self):
- """Tests ``ToStacktrace`` returns None for empty stacktrace buffer."""
+ """Tests that ``ToStacktrace`` returns None for empty stacktrace buffer."""
self.assertIsNone(StacktraceBuffer([]).ToStacktrace())
« no previous file with comments | « appengine/findit/crash/test/callstack_filters_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698