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

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

Issue 2600223003: Made _UpdateSuspect a method on Suspect rather than a standalone function (Closed)
Patch Set: Created 3 years, 12 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
« no previous file with comments | « appengine/findit/crash/suspect.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.stacktrace import StackFrame 5 from crash.stacktrace import StackFrame
6 from crash.suspect import AnalysisInfo 6 from crash.suspect import AnalysisInfo
7 from crash.suspect import StackInfo 7 from crash.suspect import StackInfo
8 from crash.suspect import Suspect 8 from crash.suspect import Suspect
9 from crash.suspect import SuspectMap 9 from crash.suspect import SuspectMap
10 from crash.suspect import _UpdateSuspect
11 from crash.test.crash_test_suite import CrashTestSuite 10 from crash.test.crash_test_suite import CrashTestSuite
12 from libs.gitiles.blame import Blame 11 from libs.gitiles.blame import Blame
13 from libs.gitiles.blame import Region 12 from libs.gitiles.blame import Region
14 from libs.gitiles.change_log import ChangeLog 13 from libs.gitiles.change_log import ChangeLog
15 14
16 DUMMY_CHANGELOG1 = ChangeLog.FromDict({ 15 DUMMY_CHANGELOG1 = ChangeLog.FromDict({
17 'author_name': 'r@chromium.org', 16 'author_name': 'r@chromium.org',
18 'message': 'dummy', 17 'message': 'dummy',
19 'committer_email': 'r@chromium.org', 18 'committer_email': 'r@chromium.org',
20 'commit_position': 175900, 19 'commit_position': 175900,
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 115
117 self.assertEqual(str(suspect), expected_str) 116 self.assertEqual(str(suspect), expected_str)
118 117
119 def testSuspectUpdate(self): 118 def testSuspectUpdate(self):
120 # Touched lines have intersection with crashed lines. 119 # Touched lines have intersection with crashed lines.
121 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1) 120 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1)
122 stack_infos = [StackInfo( 121 stack_infos = [StackInfo(
123 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]), 122 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]),
124 priority = 0)] 123 priority = 0)]
125 124
126 _UpdateSuspect(suspect, 'a.cc', stack_infos, DUMMY_BLAME) 125 suspect._UpdateSuspect('a.cc', stack_infos, DUMMY_BLAME)
127 self.assertEqual(suspect.file_to_analysis_info['a.cc'].min_distance, 0) 126 self.assertEqual(suspect.file_to_analysis_info['a.cc'].min_distance, 0)
128 127
129 # Touched lines are before crashed lines. 128 # Touched lines are before crashed lines.
130 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1) 129 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1)
131 130
132 stack_infos = [StackInfo( 131 stack_infos = [StackInfo(
133 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [3]), 132 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [3]),
134 priority = 0)] 133 priority = 0)]
135 134
136 _UpdateSuspect(suspect, 'a.cc', stack_infos, DUMMY_BLAME) 135 suspect._UpdateSuspect('a.cc', stack_infos, DUMMY_BLAME)
137 self.assertEqual(suspect.file_to_analysis_info['a.cc'].min_distance, 3) 136 self.assertEqual(suspect.file_to_analysis_info['a.cc'].min_distance, 3)
138 137
139 # Touched lines are after crashed lines. 138 # Touched lines are after crashed lines.
140 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1) 139 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1)
141 140
142 stack_infos = [StackInfo( 141 stack_infos = [StackInfo(
143 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [10]), 142 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [10]),
144 priority = 0)] 143 priority = 0)]
145 144
146 _UpdateSuspect(suspect, 'a.cc', stack_infos, DUMMY_BLAME) 145 suspect._UpdateSuspect('a.cc', stack_infos, DUMMY_BLAME)
147 self.assertEqual(suspect.file_to_analysis_info['a.cc'].min_distance, 2) 146 self.assertEqual(suspect.file_to_analysis_info['a.cc'].min_distance, 2)
148 147
149 def testSuspectUpdateWithEmptyBlame(self): 148 def testSuspectUpdateWithEmptyBlame(self):
150 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1) 149 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1)
151 stack_infos = [StackInfo( 150 stack_infos = [StackInfo(
152 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]), 151 frame = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]),
153 priority = 0)] 152 priority = 0)]
154 153
155 _UpdateSuspect(suspect, 'a.cc', stack_infos, None) 154 suspect._UpdateSuspect('a.cc', stack_infos, None)
156 self.assertEqual(suspect.file_to_stack_infos['a.cc'], stack_infos) 155 self.assertEqual(suspect.file_to_stack_infos['a.cc'], stack_infos)
157 self.assertEqual(suspect.file_to_analysis_info, {}) 156 self.assertEqual(suspect.file_to_analysis_info, {})
158 157
159 def testSuspectUpdateMinimumDistance(self): 158 def testSuspectUpdateMinimumDistance(self):
160 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1) 159 suspect = Suspect(DUMMY_CHANGELOG1, 'src/', confidence=1)
161 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]) 160 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7])
162 frame2 = StackFrame(2, 'src/', 'func', 'a.cc', 'src/a.cc', [20]) 161 frame2 = StackFrame(2, 'src/', 'func', 'a.cc', 'src/a.cc', [20])
163 stack_infos = [StackInfo(frame1, 0), StackInfo(frame2, 0)] 162 stack_infos = [StackInfo(frame1, 0), StackInfo(frame2, 0)]
164 163
165 _UpdateSuspect(suspect, 'a.cc', stack_infos, DUMMY_BLAME) 164 suspect._UpdateSuspect('a.cc', stack_infos, DUMMY_BLAME)
166 self.assertEqual(suspect.file_to_stack_infos['a.cc'], stack_infos) 165 self.assertEqual(suspect.file_to_stack_infos['a.cc'], stack_infos)
167 self.assertEqual(suspect.file_to_analysis_info, 166 self.assertEqual(suspect.file_to_analysis_info,
168 {'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1)}) 167 {'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1)})
169 168
170 def testSuspectsGenerateSuspects(self): 169 def testSuspectsGenerateSuspects(self):
171 suspects = SuspectMap(ignore_cls=set(['2'])) 170 suspects = SuspectMap(ignore_cls=set(['2']))
172 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]) 171 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7])
173 frame2 = StackFrame(1, 'src/', 'func', 'b.cc', 'src/b.cc', [11]) 172 frame2 = StackFrame(1, 'src/', 'func', 'b.cc', 'src/b.cc', [11])
174 stack_infos1 = [StackInfo(frame1, 0)] 173 stack_infos1 = [StackInfo(frame1, 0)]
175 stack_infos2 = [StackInfo(frame2, 0)] 174 stack_infos2 = [StackInfo(frame2, 0)]
(...skipping 12 matching lines...) Expand all
188 } 187 }
189 expected_suspect.file_to_analysis_info = { 188 expected_suspect.file_to_analysis_info = {
190 'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1), 189 'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1),
191 'b.cc': AnalysisInfo(min_distance = 3, min_distance_frame = frame2), 190 'b.cc': AnalysisInfo(min_distance = 3, min_distance_frame = frame2),
192 } 191 }
193 192
194 expected_suspects = SuspectMap(ignore_cls=set(['2'])) 193 expected_suspects = SuspectMap(ignore_cls=set(['2']))
195 expected_suspects['1'] = expected_suspect 194 expected_suspects['1'] = expected_suspect
196 195
197 self._VerifyTwoSuspectMapEqual(suspects, expected_suspects) 196 self._VerifyTwoSuspectMapEqual(suspects, expected_suspects)
OLDNEW
« no previous file with comments | « appengine/findit/crash/suspect.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698