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

Side by Side Diff: tools/auto_bisect/bisect_results.py

Issue 1625573004: Update legacy bisect to post results to perf dashboard. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_import_path
Patch Set: update Created 4 years, 10 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
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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 import math 5 import math
6 import os 6 import os
7 7
8 import bisect_utils 8 import bisect_utils
9 import math_utils 9 import math_utils
10 import source_control 10 import source_control
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 second option creates an error result. 49 second option creates an error result.
50 50
51 Args: 51 Args:
52 bisect_state: BisectState object representing latest bisect state. 52 bisect_state: BisectState object representing latest bisect state.
53 depot_registry: DepotDirectoryRegistry object with information on each 53 depot_registry: DepotDirectoryRegistry object with information on each
54 repository in the bisect_state. 54 repository in the bisect_state.
55 opts: Options passed to the bisect run. 55 opts: Options passed to the bisect run.
56 runtime_warnings: A list of warnings from the bisect run. 56 runtime_warnings: A list of warnings from the bisect run.
57 error: Error message. When error is not None, other arguments are ignored. 57 error: Error message. When error is not None, other arguments are ignored.
58 """ 58 """
59 # Setting these attributes so that bisect printer does not break when the
60 # regression cannot be reproduced (no broken revision was found)
61 self.regression_size = 0
62 self.regression_std_err = 0
63 self.confidence = 0
64 self.culprit_revisions = []
65
59 self.error = error 66 self.error = error
60 self.abort_reason = abort_reason 67 self.abort_reason = abort_reason
61 if error is not None or abort_reason is not None: 68 if error is not None or abort_reason is not None:
62 return 69 return
63 70
64 assert (bisect_state is not None and depot_registry is not None and 71 assert (bisect_state is not None and depot_registry is not None and
65 opts is not None and runtime_warnings is not None), ( 72 opts is not None and runtime_warnings is not None), (
66 'Incorrect use of the BisectResults constructor. ' 73 'Incorrect use of the BisectResults constructor. '
67 'When error is None, all other arguments are required.') 74 'When error is None, all other arguments are required.')
68 75
(...skipping 15 matching lines...) Expand all
84 91
85 self.regression_size = statistics['regression_size'] 92 self.regression_size = statistics['regression_size']
86 self.regression_std_err = statistics['regression_std_err'] 93 self.regression_std_err = statistics['regression_std_err']
87 self.confidence = statistics['confidence'] 94 self.confidence = statistics['confidence']
88 95
89 self.culprit_revisions = self._FindCulpritRevisions( 96 self.culprit_revisions = self._FindCulpritRevisions(
90 rev_states, depot_registry, first_working_rev, last_broken_rev) 97 rev_states, depot_registry, first_working_rev, last_broken_rev)
91 98
92 self.warnings += self._GetResultBasedWarnings( 99 self.warnings += self._GetResultBasedWarnings(
93 self.culprit_revisions, opts, self.confidence) 100 self.culprit_revisions, opts, self.confidence)
94 elif first_working_rev is not None:
95 # Setting these attributes so that bisect printer does not break when the
96 # regression cannot be reproduced (no broken revision was found)
97 self.regression_size = 0
98 self.regression_std_err = 0
99 self.confidence = 0
100 self.culprit_revisions = []
101 101
102 def AddRetestResults(self, results_tot, results_reverted): 102 def AddRetestResults(self, results_tot, results_reverted):
103 if not results_tot or not results_reverted: 103 if not results_tot or not results_reverted:
104 self.warnings.append( 104 self.warnings.append(
105 'Failed to re-test reverted culprit CL against ToT.') 105 'Failed to re-test reverted culprit CL against ToT.')
106 return 106 return
107 107
108 confidence = BisectResults.ConfidenceScore( 108 confidence = BisectResults.ConfidenceScore(
109 results_reverted[0]['values'], 109 results_reverted[0]['values'],
110 results_tot[0]['values']) 110 results_tot[0]['values'])
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 confidence = cls.ConfidenceScore( 253 confidence = cls.ConfidenceScore(
254 sum([first_working_rev.value['values']], []), 254 sum([first_working_rev.value['values']], []),
255 sum([last_broken_rev.value['values']], [])) 255 sum([last_broken_rev.value['values']], []))
256 256
257 bad_greater_than_good = mean_of_bad_runs > mean_of_good_runs 257 bad_greater_than_good = mean_of_bad_runs > mean_of_good_runs
258 258
259 return {'regression_size': regression_size, 259 return {'regression_size': regression_size,
260 'regression_std_err': regression_std_err, 260 'regression_std_err': regression_std_err,
261 'confidence': confidence, 261 'confidence': confidence,
262 'bad_greater_than_good': bad_greater_than_good} 262 'bad_greater_than_good': bad_greater_than_good}
OLDNEW
« no previous file with comments | « tools/auto_bisect/bisect_perf_regression_test.py ('k') | tools/auto_bisect/bisect_results_json.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698