| 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 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 Loading... |
| 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 Loading... |
| 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 []) |
| OLD | NEW |