| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Performance Test Bisect Tool | 6 """Performance Test Bisect Tool |
| 7 | 7 |
| 8 This script bisects a series of changelists using binary search. It starts at | 8 This script bisects a series of changelists using binary search. It starts at |
| 9 a bad revision where a performance metric has regressed, and asks for a last | 9 a bad revision where a performance metric has regressed, and asks for a last |
| 10 known-good revision. It will then binary search across this revision range by | 10 known-good revision. It will then binary search across this revision range by |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 Relative Change: %(change)s | 196 Relative Change: %(change)s |
| 197 Estimated Confidence: %(confidence)d%%""" | 197 Estimated Confidence: %(confidence)d%%""" |
| 198 | 198 |
| 199 # The perf dashboard specifically looks for the string | 199 # The perf dashboard specifically looks for the string |
| 200 # "Author : " to parse out who to cc on a bug. If you change the | 200 # "Author : " to parse out who to cc on a bug. If you change the |
| 201 # formatting here, please update the perf dashboard as well. | 201 # formatting here, please update the perf dashboard as well. |
| 202 RESULTS_REVISION_INFO = """ | 202 RESULTS_REVISION_INFO = """ |
| 203 ===== SUSPECTED CL(s) ===== | 203 ===== SUSPECTED CL(s) ===== |
| 204 Subject : %(subject)s | 204 Subject : %(subject)s |
| 205 Author : %(author)s%(email_info)s%(commit_info)s | 205 Author : %(author)s%(email_info)s%(commit_info)s |
| 206 Commit : %(cl)s |
| 206 Date : %(cl_date)s""" | 207 Date : %(cl_date)s""" |
| 207 | 208 |
| 208 REPRO_STEPS_LOCAL = """ | 209 REPRO_STEPS_LOCAL = """ |
| 209 ==== INSTRUCTIONS TO REPRODUCE ==== | 210 ==== INSTRUCTIONS TO REPRODUCE ==== |
| 210 To run locally: | 211 To run locally: |
| 211 $%(command)s""" | 212 $%(command)s""" |
| 212 | 213 |
| 213 REPRO_STEPS_TRYJOB = """ | 214 REPRO_STEPS_TRYJOB = """ |
| 214 To reproduce on Performance trybot: | 215 To reproduce on Performance trybot: |
| 215 1. Create new git branch or check out existing branch. | 216 1. Create new git branch or check out existing branch. |
| (...skipping 3151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3367 if commit_link: | 3368 if commit_link: |
| 3368 commit_info = '\nLink : %s' % commit_link | 3369 commit_info = '\nLink : %s' % commit_link |
| 3369 else: | 3370 else: |
| 3370 commit_info = ('\nFailed to parse svn revision from body:\n%s' % | 3371 commit_info = ('\nFailed to parse svn revision from body:\n%s' % |
| 3371 info['body']) | 3372 info['body']) |
| 3372 print RESULTS_REVISION_INFO % { | 3373 print RESULTS_REVISION_INFO % { |
| 3373 'subject': info['subject'], | 3374 'subject': info['subject'], |
| 3374 'author': info['author'], | 3375 'author': info['author'], |
| 3375 'email_info': email_info, | 3376 'email_info': email_info, |
| 3376 'commit_info': commit_info, | 3377 'commit_info': commit_info, |
| 3378 'cl': cl, |
| 3377 'cl_date': info['date'] | 3379 'cl_date': info['date'] |
| 3378 } | 3380 } |
| 3379 | 3381 |
| 3380 def _PrintTableRow(self, column_widths, row_data): | 3382 def _PrintTableRow(self, column_widths, row_data): |
| 3381 assert len(column_widths) == len(row_data) | 3383 assert len(column_widths) == len(row_data) |
| 3382 | 3384 |
| 3383 text = '' | 3385 text = '' |
| 3384 for i in xrange(len(column_widths)): | 3386 for i in xrange(len(column_widths)): |
| 3385 current_row_data = row_data[i].center(column_widths[i], ' ') | 3387 current_row_data = row_data[i].center(column_widths[i], ' ') |
| 3386 text += ('%%%ds' % column_widths[i]) % current_row_data | 3388 text += ('%%%ds' % column_widths[i]) % current_row_data |
| (...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4144 # The perf dashboard scrapes the "results" step in order to comment on | 4146 # The perf dashboard scrapes the "results" step in order to comment on |
| 4145 # bugs. If you change this, please update the perf dashboard as well. | 4147 # bugs. If you change this, please update the perf dashboard as well. |
| 4146 bisect_utils.OutputAnnotationStepStart('Results') | 4148 bisect_utils.OutputAnnotationStepStart('Results') |
| 4147 print 'Error: %s' % e.message | 4149 print 'Error: %s' % e.message |
| 4148 if opts.output_buildbot_annotations: | 4150 if opts.output_buildbot_annotations: |
| 4149 bisect_utils.OutputAnnotationStepClosed() | 4151 bisect_utils.OutputAnnotationStepClosed() |
| 4150 return 1 | 4152 return 1 |
| 4151 | 4153 |
| 4152 if __name__ == '__main__': | 4154 if __name__ == '__main__': |
| 4153 sys.exit(main()) | 4155 sys.exit(main()) |
| OLD | NEW |