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

Unified Diff: scripts/slave/recipe_modules/auto_bisect/example.py

Issue 1339613005: Refactoring scripts that wait for buildbot jobs to complete. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@hax
Patch Set: removing blank line Created 5 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 side-by-side diff with in-line comments
Download patch
Index: scripts/slave/recipe_modules/auto_bisect/example.py
diff --git a/scripts/slave/recipe_modules/auto_bisect/example.py b/scripts/slave/recipe_modules/auto_bisect/example.py
index ab944b6cae3b82871c933739753f015b81b3dba7..49b42bd8b0c80a5f8d579623132419f52c5fe06c 100644
--- a/scripts/slave/recipe_modules/auto_bisect/example.py
+++ b/scripts/slave/recipe_modules/auto_bisect/example.py
@@ -7,6 +7,7 @@ import json
DEPS = [
'auto_bisect',
'chromium_tests',
+ 'json',
'path',
'properties',
'raw_io',
@@ -38,6 +39,9 @@ def RunSteps(api):
bisector.bad_rev.start_job()
bisector.wait_for_all([bisector.good_rev, bisector.bad_rev])
+ if bisector.good_rev.failed or bisector.bad_rev.failed:
+ return
+
assert bisector.check_improvement_direction()
assert bisector.check_initial_confidence()
revisions_to_check = bisector.get_revisions_to_eval(1)
@@ -70,23 +74,50 @@ def RunSteps(api):
api.auto_bisect.run_bisect_script('dummy_extra_src', '/dummy/path/')
def GenTests(api):
- wait_for_any_output = (
- 'Build finished: gs://chrome-perf/bisect-results/'
- 'a6298e4afedbf2cd461755ea6f45b0ad64222222-test.results')
+ dummy_gs_location = ('gs://chrome-perf/bisect-results/'
+ 'a6298e4afedbf2cd461755ea6f45b0ad64222222-test.results')
+ wait_for_any_output = {
+ 'completed': [
+ {
+ 'type': 'gs',
+ 'location': dummy_gs_location
+ }
+ ]
+ }
+
basic_data = _get_basic_test_data()
basic_test = _make_test(api, basic_data, 'basic')
basic_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
yield basic_test
+ failed_build_test_data = _get_ref_range_only_test_data()
+ failed_build_test = _make_test(
+ api, failed_build_test_data, 'failed_build_test')
+ failed_build_test_step_data = {
+ 'failed':
+ [{
+ 'builder': 'linux_perf_tester',
+ 'job_name': 'a6298e4afedbf2cd461755ea6f45b0ad64222222-test',
+ 'master': 'tryserver.chromium.perf',
+ 'type': 'buildbot',
+ 'job_url': 'http://tempuri.org/log',
+ }],
+ }
+ failed_build_test += api.step_data(
+ 'Waiting for revision 314015 and 1 other revision(s). (2)',
+ stdout=api.json.output(failed_build_test_step_data), retcode=1)
+
+ yield failed_build_test
+
basic_data = _get_basic_test_data()
windows_test = _make_test(
api, basic_data, 'windows_bisector', platform='windows')
windows_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
yield windows_test
@@ -95,7 +126,7 @@ def GenTests(api):
api, basic_data, 'windows_x64_bisector', platform='win_x64')
winx64_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
yield winx64_test
@@ -103,7 +134,7 @@ def GenTests(api):
mac_test = _make_test(api, basic_data, 'mac_bisector', platform='mac')
mac_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
yield mac_test
@@ -112,7 +143,7 @@ def GenTests(api):
api, basic_data, 'android_bisector', platform='android')
android_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
yield android_test
@@ -121,7 +152,7 @@ def GenTests(api):
api, basic_data, 'android_arm64_bisector', platform='android_arm64')
android_arm64_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
yield android_arm64_test
@@ -166,7 +197,7 @@ def GenTests(api):
bisect_script_test = _make_test(api, basic_data, 'basic_bisect_script')
bisect_script_test += api.step_data(
'Waiting for revision 314015 and 1 other revision(s). (2)',
- stdout=api.raw_io.output(wait_for_any_output))
+ stdout=api.json.output(wait_for_any_output))
bisect_script_test += api.properties(mastername='tryserver.chromium.perf',
buildername='linux_perf_bisect',
@@ -174,6 +205,29 @@ def GenTests(api):
yield bisect_script_test
+def _get_ref_range_only_test_data():
+ return [
+ {
+ 'refrange': True,
+ 'hash': 'a6298e4afedbf2cd461755ea6f45b0ad64222222',
+ 'commit_pos': '314015',
+ },
+ {
+ 'refrange': True,
+ 'hash': '00316c9ddfb9d7b4e1ed2fff9fe6d964d2111111',
+ 'commit_pos': '314017',
+ 'test_results': {
+ 'results':{
+ 'mean': 15,
+ 'std_err': 1,
+ 'values': [14, 15, 16],
+ },
+ 'retcodes': [0],
+ }
+ },
+ ]
+
+
def _get_basic_test_data():
return [
{
@@ -366,7 +420,7 @@ def _get_step_data_for_revision(api, revision_data, include_build_steps=True):
"""Generator that produces step patches for fake results."""
commit_pos = revision_data['commit_pos']
commit_hash = revision_data['hash']
- test_results = revision_data['test_results']
+ test_results = revision_data.get('test_results')
if 'refrange' in revision_data:
parent_step = 'Resolving reference range.'
@@ -381,9 +435,9 @@ def _get_step_data_for_revision(api, revision_data, include_build_steps=True):
yield api.step_data(step_name, stdout=api.raw_io.output(commit_pos_str))
if include_build_steps:
- step_name = 'gsutil Get test results for build ' + commit_hash
- yield api.step_data(step_name, stdout=api.raw_io.output(json.dumps(
- test_results)))
+ if test_results:
+ step_name = 'gsutil Get test results for build ' + commit_hash
+ yield api.step_data(step_name, stdout=api.json.output(test_results))
if revision_data.get('DEPS', False):
step_name = 'git cat-file %s:DEPS' % commit_hash

Powered by Google App Engine
This is Rietveld 408576698