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

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

Issue 2593593003: [Predator] Add Clusterfuzz stacktrace parser. (Closed)
Patch Set: Rebase and fix nit. Created 3 years, 11 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 import textwrap 5 import textwrap
6 6
7 from common.dependency import Dependency 7 from common.dependency import Dependency
8 from crash.chromecrash_parser import ChromeCrashParser 8 from crash.chromecrash_parser import ChromeCrashParser
9 from crash.stacktrace import StackFrame 9 from crash.stacktrace import StackFrame
10 from crash.stacktrace import CallStack 10 from crash.stacktrace import CallStack
11 from crash.stacktrace import Stacktrace 11 from crash.stacktrace import Stacktrace
12 from crash.test.stacktrace_test_suite import StacktraceTestSuite 12 from crash.test.stacktrace_test_suite import StacktraceTestSuite
13 from crash.type_enums import CallStackFormatType 13 from crash.type_enums import CallStackFormatType
14 from crash.type_enums import LanguageType 14 from crash.type_enums import LanguageType
15 15
16 16
17 class ChromeCrashParserTest(StacktraceTestSuite): 17 class ChromeCrashParserTest(StacktraceTestSuite):
18 18
19 def testChromeCrashParserIsStartOfNewCallSTack(self):
20 parser = ChromeCrashParser()
21 self.assertEqual(parser._IsStartOfNewCallStack('dummy line'),
22 (False, None, None, None))
23 self.assertEqual(parser._IsStartOfNewCallStack('CRASHED [EXC @ 0x508]'),
24 (True, 0, CallStackFormatType.DEFAULT,
25 LanguageType.CPP))
26
27 def testReturnEmptyStacktraceForEmptyString(self): 19 def testReturnEmptyStacktraceForEmptyString(self):
28 parser = ChromeCrashParser() 20 parser = ChromeCrashParser()
29 deps = {'src/': Dependency('src/', 'https://repo', '1')} 21 deps = {'src/': Dependency('src/', 'https://repo', '1')}
30 22
31 self.assertIsNone(parser.Parse('', deps)) 23 self.assertIsNone(parser.Parse('', deps))
32 24
33 def testChromeCrashParserParseLineMalformatedCallstack(self): 25 def testChromeCrashParserParseLineMalformatedCallstack(self):
34 parser = ChromeCrashParser() 26 parser = ChromeCrashParser()
35 deps = {'src/': Dependency('src/', 'https://repo', '1')} 27 deps = {'src/': Dependency('src/', 'https://repo', '1')}
36 stacktrace_string = textwrap.dedent( 28 stacktrace_string = textwrap.dedent(
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 StackFrame(1, 'src/', 'a::b::d(a* c)', 'f1.cc', 'src/f1.cc', [227])]) 106 StackFrame(1, 'src/', 'a::b::d(a* c)', 'f1.cc', 'src/f1.cc', [227])])
115 expected_callstack1 = CallStack(0, frame_list=[ 107 expected_callstack1 = CallStack(0, frame_list=[
116 StackFrame( 108 StackFrame(
117 0, 'src/', 'e::f::g(p* &d)', 'f.cc', 'src/f.cc', [20, 21, 22]), 109 0, 'src/', 'e::f::g(p* &d)', 'f.cc', 'src/f.cc', [20, 21, 22]),
118 StackFrame( 110 StackFrame(
119 1, 'src/', 'h::i::j(p* &d)', 'ff.cc', 'src/ff.cc', [9, 10])]) 111 1, 'src/', 'h::i::j(p* &d)', 'ff.cc', 'src/ff.cc', [9, 10])])
120 112
121 expected_stacktrace = Stacktrace([expected_callstack0, expected_callstack1], 113 expected_stacktrace = Stacktrace([expected_callstack0, expected_callstack1],
122 expected_callstack0) 114 expected_callstack0)
123 self._VerifyTwoStacktracesEqual(stacktrace, expected_stacktrace) 115 self._VerifyTwoStacktracesEqual(stacktrace, expected_stacktrace)
OLDNEW
« no previous file with comments | « appengine/findit/crash/test/changelist_classifier_test.py ('k') | appengine/findit/crash/test/clusterfuzz_parser_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698