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

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

Issue 2588513002: [Predator] renamed "Result" to "Suspect" (Closed)
Patch Set: Removing redundant import 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 crash.stacktrace import StackFrame 5 from crash.stacktrace import StackFrame
6 from crash.stacktrace import CallStack 6 from crash.stacktrace import CallStack
7 from crash.project_classifier import ProjectClassifier 7 from crash.project_classifier import ProjectClassifier
8 from crash.results import Result 8 from crash.suspect import Suspect
9 from crash.test.predator_testcase import PredatorTestCase 9 from crash.test.predator_testcase import PredatorTestCase
10 from crash.type_enums import CallStackLanguageType 10 from crash.type_enums import CallStackLanguageType
11 from model.crash.crash_config import CrashConfig 11 from model.crash.crash_config import CrashConfig
12 12
13 13
14 class ProjectClassifierTest(PredatorTestCase): 14 class ProjectClassifierTest(PredatorTestCase):
15 15
16 def testGetProjectNameFromDepPath(self): 16 def testGetProjectNameFromDepPath(self):
17 classifier = ProjectClassifier() 17 classifier = ProjectClassifier()
18 self.assertEqual(classifier._GetProjectFromDepPath('src/'), 18 self.assertEqual(classifier._GetProjectFromDepPath('src/'),
(...skipping 18 matching lines...) Expand all
37 37
38 frame = StackFrame(0, '', 'func', 'comp2.cc', 38 frame = StackFrame(0, '', 'func', 'comp2.cc',
39 'googleplex-android/src/comp2.cc', [32]) 39 'googleplex-android/src/comp2.cc', [32])
40 self.assertEqual( 40 self.assertEqual(
41 classifier.GetClassFromStackFrame(frame), 'android_os') 41 classifier.GetClassFromStackFrame(frame), 'android_os')
42 42
43 frame = StackFrame(0, '', 'func', 'comp2.cc', 'unknown/comp2.cc', [32]) 43 frame = StackFrame(0, '', 'func', 'comp2.cc', 'unknown/comp2.cc', [32])
44 self.assertEqual( 44 self.assertEqual(
45 classifier.GetClassFromStackFrame(frame), '') 45 classifier.GetClassFromStackFrame(frame), '')
46 46
47 def testGetClassFromResult(self): 47 def testGetClassFromSuspect(self):
48 classifier = ProjectClassifier() 48 classifier = ProjectClassifier()
49 49
50 result = Result(self.GetDummyChangeLog(), 'src/') 50 suspect = Suspect(self.GetDummyChangeLog(), 'src/')
51 result.file_to_stack_infos = {'a.cc': [( 51 suspect.file_to_stack_infos = {'a.cc': [(
52 StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [3]), 0 52 StackFrame(0, 'src/', 'func', 'a.cc', 'src/a.cc', [3]), 0
53 )]} 53 )]}
54 self.assertEqual(classifier.GetClassFromResult(result), 'chromium') 54 self.assertEqual(classifier.GetClassFromSuspect(suspect), 'chromium')
55 55
56 result.file_to_stack_infos = { 56 suspect.file_to_stack_infos = {
57 'comp1.cc': [ 57 'comp1.cc': [
58 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 58 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
59 ] 59 ]
60 } 60 }
61 self.assertEqual(classifier.GetClassFromResult(result), 'chromium') 61 self.assertEqual(classifier.GetClassFromSuspect(suspect), 'chromium')
62 62
63 def testClassifyCrashStack(self): 63 def testClassifyCrashStack(self):
64 classifier = ProjectClassifier() 64 classifier = ProjectClassifier()
65 65
66 crash_stack = CallStack(0, frame_list=[ 66 crash_stack = CallStack(0, frame_list=[
67 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 67 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
68 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 68 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
69 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])]) 69 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])])
70 70
71 self.assertEqual(classifier.Classify([], crash_stack), 'chromium') 71 self.assertEqual(classifier.Classify([], crash_stack), 'chromium')
72 72
73 def testClassifyResultsEmpty(self): 73 def testClassifyEmpty(self):
74 classifier = ProjectClassifier() 74 classifier = ProjectClassifier()
75 result = Result(self.GetDummyChangeLog(), '') 75 suspect = Suspect(self.GetDummyChangeLog(), '')
76 self.assertEqual(classifier.Classify([result], CallStack(0)), '') 76 self.assertEqual(classifier.Classify([suspect], CallStack(0)), '')
77 77
78 def testClassifyRankFunction(self): 78 def testClassifyRankFunction(self):
79 classifier = ProjectClassifier() 79 classifier = ProjectClassifier()
80 80
81 result1 = Result(self.GetDummyChangeLog(), 'src/') 81 suspect1 = Suspect(self.GetDummyChangeLog(), 'src/')
82 result1.file_to_stack_infos = { 82 suspect1.file_to_stack_infos = {
83 'comp1.cc': [ 83 'comp1.cc': [
84 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 84 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
85 ] 85 ]
86 } 86 }
87 87
88 self.assertEqual(classifier.Classify([result1], CallStack(0)), 'chromium') 88 self.assertEqual(classifier.Classify([suspect1], CallStack(0)), 'chromium')
89 89
90 result2 = Result(self.GetDummyChangeLog(), '') 90 suspect2 = Suspect(self.GetDummyChangeLog(), '')
91 result2.file_to_stack_infos = { 91 suspect2.file_to_stack_infos = {
92 'ad.cc': [ 92 'ad.cc': [
93 (StackFrame(0, '', 'android.a', 'ad.cc', 'ad.cc', [2]), 0) 93 (StackFrame(0, '', 'android.a', 'ad.cc', 'ad.cc', [2]), 0)
94 ] 94 ]
95 } 95 }
96 96
97 self.assertEqual(classifier.Classify([result2], CallStack(0)), 97 self.assertEqual(classifier.Classify([suspect2], CallStack(0)),
98 'android_os') 98 'android_os')
99 99
100 self.assertEqual(classifier.Classify([result1, result2], CallStack(0)), 100 self.assertEqual(classifier.Classify([suspect1, suspect2], CallStack(0)),
101 'chromium') 101 'chromium')
102 102
103 def testClassifyForJavaRankFunction(self): 103 def testClassifyForJavaRankFunction(self):
104 classifier = ProjectClassifier() 104 classifier = ProjectClassifier()
105 105
106 crash_stack = CallStack(0, language_type=CallStackLanguageType.JAVA) 106 crash_stack = CallStack(0, language_type=CallStackLanguageType.JAVA)
107 107
108 crash_stack = CallStack(0, 108 crash_stack = CallStack(0,
109 language_type=CallStackLanguageType.JAVA, 109 language_type=CallStackLanguageType.JAVA,
110 frame_list=[ 110 frame_list=[
(...skipping 15 matching lines...) Expand all
126 def testProjectClassifierDoNotHaveConfig(self): 126 def testProjectClassifierDoNotHaveConfig(self):
127 crash_config = CrashConfig.Get() 127 crash_config = CrashConfig.Get()
128 crash_config.project_classifier = {} 128 crash_config.project_classifier = {}
129 crash_config.put() 129 crash_config.put()
130 130
131 crash_stack = CallStack(0, frame_list=[ 131 crash_stack = CallStack(0, frame_list=[
132 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 132 StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]),
133 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]), 133 StackFrame(1, 'src/', 'ff', 'comp1.cc', 'src/comp1.cc', [21]),
134 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])]) 134 StackFrame(2, 'src/', 'func2', 'comp2.cc', 'src/comp2.cc', [8])])
135 135
136 result1 = Result(self.GetDummyChangeLog(), 'src/') 136 suspect1 = Suspect(self.GetDummyChangeLog(), 'src/')
137 result1.file_to_stack_infos = { 137 suspect1.file_to_stack_infos = {
138 'comp1.cc': [ 138 'comp1.cc': [
139 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0) 139 (StackFrame(0, 'src/', 'func', 'comp1.cc', 'src/comp1.cc', [2]), 0)
140 ] 140 ]
141 } 141 }
142 142
143 self.assertIsNone(ProjectClassifier().Classify([result1], crash_stack)) 143 self.assertIsNone(ProjectClassifier().Classify([suspect1], crash_stack))
144 144
145 def testSortHosts(self): 145 def testSortHosts(self):
146 host_list = [ 146 host_list = [
147 'src/', 147 'src/',
148 'src/chrome/browser/resources/', 148 'src/chrome/browser/resources/',
149 'src/media/', 149 'src/media/',
150 'src/sdch/', 150 'src/sdch/',
151 'src/testing/', 151 'src/testing/',
152 'src/third_party/WebKit/', 152 'src/third_party/WebKit/',
153 'src/third_party/', 153 'src/third_party/',
(...skipping 12 matching lines...) Expand all
166 'src/sdch/', 166 'src/sdch/',
167 'src/testing/', 167 'src/testing/',
168 'src/third_party/', 168 'src/third_party/',
169 'src/tools/', 169 'src/tools/',
170 'src/' 170 'src/'
171 ] 171 ]
172 172
173 self.assertEqual( 173 self.assertEqual(
174 ProjectClassifier().project_classifier_config['host_directories'], 174 ProjectClassifier().project_classifier_config['host_directories'],
175 expected_sorted_host_list) 175 expected_sorted_host_list)
OLDNEW
« no previous file with comments | « appengine/findit/crash/test/occurrence_test.py ('k') | appengine/findit/crash/test/results_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698