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

Side by Side Diff: tools/bisect-perf-regression.py

Issue 529593002: In the presubmit for auto-bisect, run pylint and unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 | « tools/auto_bisect/ttest_test.py ('k') | 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 #!/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 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 res = fetch_build() 532 res = fetch_build()
533 if res: 533 if res:
534 return (res, 'Build successfully found') 534 return (res, 'Build successfully found')
535 elapsed_status_check = time.time() - last_status_check 535 elapsed_status_check = time.time() - last_status_check
536 # To avoid overloading try server with status check requests, we check 536 # To avoid overloading try server with status check requests, we check
537 # build status for every 10 minutes. 537 # build status for every 10 minutes.
538 if elapsed_status_check > status_check_interval: 538 if elapsed_status_check > status_check_interval:
539 last_status_check = time.time() 539 last_status_check = time.time()
540 if not build_num: 540 if not build_num:
541 # Get the build number on try server for the current build. 541 # Get the build number on try server for the current build.
542 build_num = bisect_builder.GetBuildNumFromBuilder( 542 build_num = request_build.GetBuildNumFromBuilder(
543 build_request_id, bot_name, builder_host, builder_port) 543 build_request_id, bot_name, builder_host, builder_port)
544 # Check the status of build using the build number. 544 # Check the status of build using the build number.
545 # Note: Build is treated as PENDING if build number is not found 545 # Note: Build is treated as PENDING if build number is not found
546 # on the the try server. 546 # on the the try server.
547 build_status, status_link = bisect_builder.GetBuildStatus( 547 build_status, status_link = request_build.GetBuildStatus(
548 build_num, bot_name, builder_host, builder_port) 548 build_num, bot_name, builder_host, builder_port)
549 if build_status == bisect_builder.FAILED: 549 if build_status == request_build.FAILED:
550 return (None, 'Failed to produce build, log: %s' % status_link) 550 return (None, 'Failed to produce build, log: %s' % status_link)
551 elapsed_time = time.time() - start_time 551 elapsed_time = time.time() - start_time
552 if elapsed_time > max_timeout: 552 if elapsed_time > max_timeout:
553 return (None, 'Timed out: %ss without build' % max_timeout) 553 return (None, 'Timed out: %ss without build' % max_timeout)
554 554
555 print 'Time elapsed: %ss without build.' % elapsed_time 555 print 'Time elapsed: %ss without build.' % elapsed_time
556 time.sleep(poll_interval) 556 time.sleep(poll_interval)
557 # For some reason, mac bisect bots were not flushing stdout periodically. 557 # For some reason, mac bisect bots were not flushing stdout periodically.
558 # As a result buildbot command is timed-out. Flush stdout on all platforms 558 # As a result buildbot command is timed-out. Flush stdout on all platforms
559 # while waiting for build. 559 # while waiting for build.
(...skipping 802 matching lines...) Expand 10 before | Expand all | Expand 10 after
1362 # not supported by builders to build. 1362 # not supported by builders to build.
1363 job_args = { 1363 job_args = {
1364 'revision': 'src@%s' % git_revision, 1364 'revision': 'src@%s' % git_revision,
1365 'bot': bot_name, 1365 'bot': bot_name,
1366 'name': build_request_id, 1366 'name': build_request_id,
1367 } 1367 }
1368 # Update patch information if supplied. 1368 # Update patch information if supplied.
1369 if patch: 1369 if patch:
1370 job_args['patch'] = patch 1370 job_args['patch'] = patch
1371 # Posts job to build the revision on the server. 1371 # Posts job to build the revision on the server.
1372 if bisect_builder.PostTryJob(builder_host, builder_port, job_args): 1372 if request_build.PostTryJob(builder_host, builder_port, job_args):
1373 target_file, error_msg = _WaitUntilBuildIsReady( 1373 target_file, error_msg = _WaitUntilBuildIsReady(
1374 fetch_build, bot_name, builder_host, builder_port, build_request_id, 1374 fetch_build, bot_name, builder_host, builder_port, build_request_id,
1375 build_timeout) 1375 build_timeout)
1376 if not target_file: 1376 if not target_file:
1377 print '%s [revision: %s]' % (error_msg, git_revision) 1377 print '%s [revision: %s]' % (error_msg, git_revision)
1378 return None 1378 return None
1379 return target_file 1379 return target_file
1380 print 'Failed to post build request for revision: [%s]' % git_revision 1380 print 'Failed to post build request for revision: [%s]' % git_revision
1381 return None 1381 return None
1382 1382
(...skipping 1976 matching lines...) Expand 10 before | Expand all | Expand 10 after
3359 # bugs. If you change this, please update the perf dashboard as well. 3359 # bugs. If you change this, please update the perf dashboard as well.
3360 bisect_utils.OutputAnnotationStepStart('Results') 3360 bisect_utils.OutputAnnotationStepStart('Results')
3361 print 'Error: %s' % e.message 3361 print 'Error: %s' % e.message
3362 if opts.output_buildbot_annotations: 3362 if opts.output_buildbot_annotations:
3363 bisect_utils.OutputAnnotationStepClosed() 3363 bisect_utils.OutputAnnotationStepClosed()
3364 return 1 3364 return 1
3365 3365
3366 3366
3367 if __name__ == '__main__': 3367 if __name__ == '__main__':
3368 sys.exit(main()) 3368 sys.exit(main())
OLDNEW
« no previous file with comments | « tools/auto_bisect/ttest_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698