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

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

Issue 1914113002: [Findit] Enable project classifier and component classifier (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 7 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
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 from common import constants
6 from common.pipeline_wrapper import pipeline_handlers
7 from crash import classifier
8 from crash.callstack import CallStack
9 from crash.callstack import StackFrame
10 from crash.results import Result
11 from crash.test.crash_testcase import CrashTestCase
12
13
14 class DummyClassifier(classifier.Classifier):
15
16 def GetClassFromStackFrame(self, frame):
17 if frame.dep_path == 'src/':
18 return 'class_1'
19
20 return 'class_2'
21
22 def GetClassFromResult(self, result): # pragma: no cover.
23 return 'class_3'
24
25 def Classify(self, results, crash_stack):
26 class_list = self._Classify(results, crash_stack, 4, 1)
27 if class_list:
28 return class_list[0]
29
30 return ''
31
32
33 class ClassifierTest(CrashTestCase):
34
35 def testDefaultRankFunction(self):
36 self.assertEqual(classifier.DefaultRankFunction(
37 classifier.ClassOccurrenceInfo('c1', [0])),
38 (-1, 0))
39
40 self.assertEqual(classifier.DefaultRankFunction(
41 classifier.ClassOccurrenceInfo('c1', [0, 1])),
42 (-float('inf'), 0))
43
44 def testClassifyCrashStack(self):
45 dummy_classifier = DummyClassifier()
46
47 crash_stack = CallStack(0)
48 self.assertEqual(dummy_classifier.Classify([], crash_stack), '')
49
50 crash_stack.extend(
51 [StackFrame(0, 'src/', 'a::c(p* &d)', 'f0.cc', 'src/f0.cc', [177]),
52 StackFrame(1, 'src/', 'a::d(a* c)', 'f1.cc', 'src/f1.cc', [227]),
53 StackFrame(2, 'src/dummy', 'a::e(int)', 'f2.cc', 'src/f2.cc', [87])])
54
55 self.assertEqual(dummy_classifier.Classify([], crash_stack), 'class_1')
56
57 crash_stack = CallStack(0)
58 crash_stack.extend(
59 [StackFrame(0, 'src/', 'a::c(p* &d)', 'f0.cc', 'src/f0.cc', [177]),
60 StackFrame(1, 'src/dummy', 'a::d(a* c)', 'f1.cc', 'src/f1.cc', [227]),
61 StackFrame(2, 'src/dummy', 'a::e(int)', 'f2.cc', 'src/f2.cc', [87])])
62
63 self.assertEqual(dummy_classifier.Classify([], crash_stack), 'class_2')
64
65 def testClassifyResults(self):
66 dummy_classifier = DummyClassifier()
67
68 result = Result(self.GetDummyChangeLog(), 'src/')
69 result.file_to_stack_infos = {
70 'f0.cc': [(StackFrame(
71 0, 'src/', 'a::c(p* &d)', 'f0.cc', 'src/f0.cc', [177]), 0)]
72 }
73
74 self.assertEqual(dummy_classifier.Classify([result], CallStack(0)),
75 'class_3')
76
77
OLDNEW
« no previous file with comments | « appengine/findit/crash/test/callstack_test.py ('k') | appengine/findit/crash/test/component_classifier_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698