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

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

Issue 1181973009: Change bisect status message to print "positive" or "negative". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 """This file contains printing-related functionality of the bisect.""" 5 """This file contains printing-related functionality of the bisect."""
6 6
7 import datetime 7 import datetime
8 import re 8 import re
9 9
10 from bisect_results import BisectResults 10 from bisect_results import BisectResults
11 import bisect_utils 11 import bisect_utils
12 import source_control 12 import source_control
13 13
14 14
15 # The perf dashboard looks for a string like "Estimated Confidence: 95%" 15 # The perf dashboard looks for a string like "Estimated Confidence: 95%"
16 # to decide whether or not to cc the author(s). If you change this, please 16 # to decide whether or not to cc the author(s). If you change this, please
17 # update the perf dashboard as well. 17 # update the perf dashboard as well.
18 RESULTS_BANNER = """ 18 RESULTS_BANNER = """
19 ===== BISECT JOB RESULTS ===== 19 ===== BISECT JOB RESULTS =====
20 Status: %(status)s 20 Status: %(status)s
21 21
22 Test Command: %(command)s 22 Test Command: %(command)s
23 Test Metric: %(metrics)s 23 Test Metric: %(metric)s
qyearsley 2015/06/18 15:55:25 Renaming metrics -> metric is minor change unrelat
24 Relative Change: %(change)s 24 Relative Change: %(change)s
25 Estimated Confidence: %(confidence).02f%% 25 Estimated Confidence: %(confidence).02f%%
26 Retested CL with revert: %(retest)s""" 26 Retested CL with revert: %(retest)s"""
27 27
28 # When the bisect was aborted without a bisect failure the following template 28 # When the bisect was aborted without a bisect failure the following template
29 # is used. 29 # is used.
30 ABORT_REASON_TEMPLATE = """ 30 ABORT_REASON_TEMPLATE = """
31 ===== BISECTION ABORTED ===== 31 ===== BISECTION ABORTED =====
32 The bisect was aborted because %(abort_reason)s 32 The bisect was aborted because %(abort_reason)s
33 Please contact the the team (see below) if you believe this is in error. 33 Please contact the the team (see below) if you believe this is in error.
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 level = 'high' 305 level = 'high'
306 else: 306 else:
307 level = 'low' 307 level = 'low'
308 warning = ' and warnings' 308 warning = ' and warnings'
309 if not bisect_results.warnings: 309 if not bisect_results.warnings:
310 warning = '' 310 warning = ''
311 return confidence_status % {'level': level, 'warning': warning} 311 return confidence_status % {'level': level, 'warning': warning}
312 312
313 def _PrintBanner(self, bisect_results): 313 def _PrintBanner(self, bisect_results):
314 if self.opts.bisect_mode == bisect_utils.BISECT_MODE_RETURN_CODE: 314 if self.opts.bisect_mode == bisect_utils.BISECT_MODE_RETURN_CODE:
315 metrics = 'N/A' 315 metric = 'N/A'
316 change = 'Yes' 316 change = 'Yes'
317 else: 317 else:
318 metrics = '/'.join(self.opts.metric) 318 metric = '/'.join(self.opts.metric)
319 change = '%.02f%% (+/-%.02f%%)' % ( 319 change = '%.02f%% (+/-%.02f%%)' % (
320 bisect_results.regression_size, bisect_results.regression_std_err) 320 bisect_results.regression_size, bisect_results.regression_std_err)
321 321 if not bisect_results.culprit_revisions:
322 if bisect_results.culprit_revisions and bisect_results.confidence: 322 change = 'No significant change reproduced.'
323 status = self._ConfidenceLevelStatus(bisect_results)
324 else:
325 status = 'Failure, could not reproduce.'
326 change = 'Bisect could not reproduce a change.'
327
328 retest_text = 'Yes' if bisect_results.retest_results_tot else 'No'
329 323
330 print RESULTS_BANNER % { 324 print RESULTS_BANNER % {
331 'status': status, 325 'status': self._StatusMessage(bisect_results),
332 'command': self.opts.command, 326 'command': self.opts.command,
333 'metrics': metrics, 327 'metric': metric,
334 'change': change, 328 'change': change,
335 'confidence': bisect_results.confidence, 329 'confidence': bisect_results.confidence,
336 'retest': retest_text, 330 'retest': 'Yes' if bisect_results.retest_results_tot else 'No',
337 } 331 }
338 332
339 @staticmethod 333 @staticmethod
334 def _StatusMessage(bisect_results):
335 if bisect_results.confidence >= bisect_utils.HIGH_CONFIDENCE:
336 return 'Positive: Reproduced a change.'
337 elif bisect_results.culprit_revisions:
338 return 'Negative: Found possible suspect(s), but with low confidence.'
339 return 'Negative: Did not reproduce a change.'
340
341 @staticmethod
340 def _PrintWarnings(warnings): 342 def _PrintWarnings(warnings):
341 """Prints a list of warning strings if there are any.""" 343 """Prints a list of warning strings if there are any."""
342 if not warnings: 344 if not warnings:
343 return 345 return
344 print 346 print
345 print 'WARNINGS:' 347 print 'WARNINGS:'
346 for w in set(warnings): 348 for w in set(warnings):
347 print ' ! %s' % w 349 print ' ! %s' % w
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698