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

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

Issue 2414523002: [Findit] Reorganizing findit_for_*.py (Closed)
Patch Set: Finally fixed the mock tests! Created 4 years, 1 month 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.classifier import Occurrence
8 from crash.classifier import Classifier
9 from crash.classifier import DefaultRankFunction
10 from crash.stacktrace import StackFrame
11 from crash.stacktrace import CallStack
12 from crash.results import Result
13 from crash.test.crash_testcase import CrashTestCase
14
15
16 class DummyClassifier(Classifier):
17
18 def GetClassFromStackFrame(self, frame):
19 if frame.dep_path == 'src/':
20 return 'class_1'
21
22 return 'class_2'
23
24 def GetClassFromResult(self, result): # pragma: no cover.
25 return 'class_3'
26
27 def Classify(self, results, crash_stack):
28 class_list = self._Classify(results, crash_stack, 4, 1)
29 if class_list:
30 return class_list[0]
31
32 return ''
33
34
35 class ClassifierTest(CrashTestCase):
36
37 def testDefaultRankFunction(self):
38 self.assertEqual(DefaultRankFunction(Occurrence('c1', [0])),
39 (-1, 0))
40 self.assertEqual(DefaultRankFunction(Occurrence('c1', [0, 1])),
41 (-float('inf'), 0))
42
43 def testClassifyCrashStack(self):
44 dummy_classifier = DummyClassifier()
45
46 crash_stack = CallStack(0)
47 self.assertEqual(dummy_classifier.Classify([], crash_stack), '')
48
49 crash_stack.extend(
50 [StackFrame(0, 'src/', 'a::c(p* &d)', 'f0.cc', 'src/f0.cc', [177]),
51 StackFrame(1, 'src/', 'a::d(a* c)', 'f1.cc', 'src/f1.cc', [227]),
52 StackFrame(2, 'src/dummy', 'a::e(int)', 'f2.cc', 'src/f2.cc', [87])])
53
54 self.assertEqual(dummy_classifier.Classify([], crash_stack), 'class_1')
55
56 crash_stack = CallStack(0)
57 crash_stack.extend(
58 [StackFrame(0, 'src/', 'a::c(p* &d)', 'f0.cc', 'src/f0.cc', [177]),
59 StackFrame(1, 'src/dummy', 'a::d(a* c)', 'f1.cc', 'src/f1.cc', [227]),
60 StackFrame(2, 'src/dummy', 'a::e(int)', 'f2.cc', 'src/f2.cc', [87])])
61
62 self.assertEqual(dummy_classifier.Classify([], crash_stack), 'class_2')
63
64 def testClassifyResults(self):
65 dummy_classifier = DummyClassifier()
66
67 result = Result(self.GetDummyChangeLog(), 'src/')
68 result.file_to_stack_infos = {
69 'f0.cc': [(StackFrame(
70 0, 'src/', 'a::c(p* &d)', 'f0.cc', 'src/f0.cc', [177]), 0)]
71 }
72
73 self.assertEqual(dummy_classifier.Classify([result], CallStack(0)),
74 'class_3')
75
76
OLDNEW
« no previous file with comments | « appengine/findit/crash/test/changelist_classifier_test.py ('k') | appengine/findit/crash/test/crash_pipeline_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698