| OLD | NEW |
| 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 Suspects | 9 from crash.suspect import SuspectMap |
| 10 from crash.suspect import _UpdateSuspect | 10 from crash.suspect import _UpdateSuspect |
| 11 from crash.test.crash_test_suite import CrashTestSuite | 11 from crash.test.crash_test_suite import CrashTestSuite |
| 12 from libs.gitiles.blame import Blame | 12 from libs.gitiles.blame import Blame |
| 13 from libs.gitiles.blame import Region | 13 from libs.gitiles.blame import Region |
| 14 from libs.gitiles.change_log import ChangeLog | 14 from libs.gitiles.change_log import ChangeLog |
| 15 | 15 |
| 16 DUMMY_CHANGELOG1 = ChangeLog.FromDict({ | 16 DUMMY_CHANGELOG1 = ChangeLog.FromDict({ |
| 17 'author_name': 'r@chromium.org', | 17 'author_name': 'r@chromium.org', |
| 18 'message': 'dummy', | 18 'message': 'dummy', |
| 19 'committer_email': 'r@chromium.org', | 19 'committer_email': 'r@chromium.org', |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]) | 164 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]) |
| 165 frame2 = StackFrame(2, 'src/', 'func', 'a.cc', 'src/a.cc', [20]) | 165 frame2 = StackFrame(2, 'src/', 'func', 'a.cc', 'src/a.cc', [20]) |
| 166 stack_infos = [StackInfo(frame1, 0), StackInfo(frame2, 0)] | 166 stack_infos = [StackInfo(frame1, 0), StackInfo(frame2, 0)] |
| 167 | 167 |
| 168 _UpdateSuspect(suspect, 'a.cc', stack_infos, DUMMY_BLAME) | 168 _UpdateSuspect(suspect, 'a.cc', stack_infos, DUMMY_BLAME) |
| 169 self.assertEqual(suspect.file_to_stack_infos['a.cc'], stack_infos) | 169 self.assertEqual(suspect.file_to_stack_infos['a.cc'], stack_infos) |
| 170 self.assertEqual(suspect.file_to_analysis_info, | 170 self.assertEqual(suspect.file_to_analysis_info, |
| 171 {'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1)}) | 171 {'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1)}) |
| 172 | 172 |
| 173 def testSuspectsGenerateSuspects(self): | 173 def testSuspectsGenerateSuspects(self): |
| 174 suspects = Suspects(ignore_cls=set(['2'])) | 174 suspects = SuspectMap(ignore_cls=set(['2'])) |
| 175 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]) | 175 frame1 = StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [7]) |
| 176 frame2 = StackFrame(1, 'src/', 'func', 'b.cc', 'src/b.cc', [11]) | 176 frame2 = StackFrame(1, 'src/', 'func', 'b.cc', 'src/b.cc', [11]) |
| 177 stack_infos1 = [StackInfo(frame1, 0)] | 177 stack_infos1 = [StackInfo(frame1, 0)] |
| 178 stack_infos2 = [StackInfo(frame2, 0)] | 178 stack_infos2 = [StackInfo(frame2, 0)] |
| 179 suspects.GenerateSuspects('a.cc', 'src/', stack_infos1, | 179 suspects.GenerateSuspects('a.cc', 'src/', stack_infos1, |
| 180 [DUMMY_CHANGELOG1, DUMMY_CHANGELOG2], | 180 [DUMMY_CHANGELOG1, DUMMY_CHANGELOG2], |
| 181 DUMMY_BLAME) | 181 DUMMY_BLAME) |
| 182 | 182 |
| 183 suspects.GenerateSuspects('b.cc', 'src/', stack_infos2, | 183 suspects.GenerateSuspects('b.cc', 'src/', stack_infos2, |
| 184 [DUMMY_CHANGELOG1, DUMMY_CHANGELOG2], | 184 [DUMMY_CHANGELOG1, DUMMY_CHANGELOG2], |
| 185 DUMMY_BLAME2) | 185 DUMMY_BLAME2) |
| 186 | 186 |
| 187 expected_suspect = Suspect(DUMMY_CHANGELOG1, 'src/') | 187 expected_suspect = Suspect(DUMMY_CHANGELOG1, 'src/') |
| 188 expected_suspect.file_to_stack_infos = { | 188 expected_suspect.file_to_stack_infos = { |
| 189 'a.cc': stack_infos1, | 189 'a.cc': stack_infos1, |
| 190 'b.cc': stack_infos2, | 190 'b.cc': stack_infos2, |
| 191 } | 191 } |
| 192 expected_suspect.file_to_analysis_info = { | 192 expected_suspect.file_to_analysis_info = { |
| 193 'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1), | 193 'a.cc': AnalysisInfo(min_distance = 0, min_distance_frame = frame1), |
| 194 'b.cc': AnalysisInfo(min_distance = 3, min_distance_frame = frame2), | 194 'b.cc': AnalysisInfo(min_distance = 3, min_distance_frame = frame2), |
| 195 } | 195 } |
| 196 | 196 |
| 197 expected_suspects = Suspects(ignore_cls=set(['2'])) | 197 expected_suspects = SuspectMap(ignore_cls=set(['2'])) |
| 198 expected_suspects['1'] = expected_suspect | 198 expected_suspects['1'] = expected_suspect |
| 199 | 199 |
| 200 self._VerifyTwoSuspectsEqual(suspects, expected_suspects) | 200 self._VerifyTwoSuspectMapEqual(suspects, expected_suspects) |
| OLD | NEW |