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

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

Issue 2562623004: Making CallStack immutable, so it can be hashable (Closed)
Patch Set: Addressing nits 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
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 common.pipeline_wrapper import pipeline_handlers 5 from common.pipeline_wrapper import pipeline_handlers
6 from crash.stacktrace import StackFrame 6 from crash.stacktrace import StackFrame
7 from crash.stacktrace import CallStack 7 from crash.stacktrace import CallStack
8 from crash.component_classifier import Component 8 from crash.component_classifier import Component
9 from crash.component_classifier import ComponentClassifier 9 from crash.component_classifier import ComponentClassifier
10 from crash.results import Result 10 from crash.results import Result
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 self.assertEqual(self.cccc.GetClassFromResult(result), '') 57 self.assertEqual(self.cccc.GetClassFromResult(result), '')
58 58
59 result.file_to_stack_infos = { 59 result.file_to_stack_infos = {
60 'comp1.cc': [ 60 'comp1.cc': [
61 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 61 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
62 ] 62 ]
63 } 63 }
64 self.assertEqual(self.cccc.GetClassFromResult(result), 'Comp1>Dummy') 64 self.assertEqual(self.cccc.GetClassFromResult(result), 'Comp1>Dummy')
65 65
66 def testClassifyCrashStack(self): 66 def testClassifyCrashStack(self):
67 crash_stack = CallStack(0) 67 crash_stack = CallStack(0, frame_list=[
68 crash_stack.extend([
69 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 68 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
70 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 69 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
71 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8]) 70 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])])
72 ])
73 71
74 self.assertEqual(self.cccc.Classify([], crash_stack), 72 self.assertEqual(self.cccc.Classify([], crash_stack),
75 ['Comp1>Dummy', 'Comp2>Dummy']) 73 ['Comp1>Dummy', 'Comp2>Dummy'])
76 74
77 def testClassifyResults(self): 75 def testClassifyResults(self):
78 result = Result(self.GetDummyChangeLog(), 'src/') 76 result = Result(self.GetDummyChangeLog(), 'src/')
79 result.file_to_stack_infos = { 77 result.file_to_stack_infos = {
80 'comp1.cc': [ 78 'comp1.cc': [
81 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 79 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
82 ] 80 ]
83 } 81 }
84 82
85 self.assertEqual(self.cccc.Classify([result], CallStack(0)), 83 self.assertEqual(self.cccc.Classify([result], CallStack(0)),
86 ['Comp1>Dummy']) 84 ['Comp1>Dummy'])
87 85
88 def testClassifierDoNotHaveConfig(self): 86 def testClassifierDoNotHaveConfig(self):
89 crash_config = CrashConfig.Get() 87 crash_config = CrashConfig.Get()
90 crash_config.component_classifier = {} 88 crash_config.component_classifier = {}
91 # N.B., we must construct a new cccc here, becasue we changed CrashConfig. 89 # N.B., we must construct a new cccc here, becasue we changed CrashConfig.
92 self.cccc = CrashConfigComponentClassifier() 90 self.cccc = CrashConfigComponentClassifier()
93 91
94 crash_stack = CallStack(0) 92 crash_stack = CallStack(0, frame_list=[
95 crash_stack.extend([
96 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 93 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
97 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 94 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
98 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8]) 95 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])])
99 ])
100 96
101 result = Result(self.GetDummyChangeLog(), 'src/') 97 result = Result(self.GetDummyChangeLog(), 'src/')
102 result.file_to_stack_infos = { 98 result.file_to_stack_infos = {
103 'comp1.cc': [ 99 'comp1.cc': [
104 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 100 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
105 ] 101 ]
106 } 102 }
107 103
108 self.assertEqual(self.cccc.Classify([result], crash_stack), []) 104 self.assertEqual(self.cccc.Classify([result], crash_stack), [])
109 105
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 } 204 }
209 ], 205 ],
210 'message': 'blabla...', 206 'message': 'blabla...',
211 'commit_url': 207 'commit_url':
212 'https://chromium.googlesource.com/chromium/src/+/git_hash', 208 'https://chromium.googlesource.com/chromium/src/+/git_hash',
213 'code_review_url': 'https://codereview.chromium.org/2222', 209 'code_review_url': 'https://codereview.chromium.org/2222',
214 'reverted_revision': '8d4a4fa6s18raf3re12tg6r'}) 210 'reverted_revision': '8d4a4fa6s18raf3re12tg6r'})
215 self.assertEqual( 211 self.assertEqual(
216 CrashConfigComponentClassifier().ClassifyChangeLog(change_log), 212 CrashConfigComponentClassifier().ClassifyChangeLog(change_log),
217 []) 213 [])
OLDNEW
« no previous file with comments | « appengine/findit/crash/test/chromecrash_parser_test.py ('k') | appengine/findit/crash/test/occurrence_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698