| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| DEPS = [ |
| 'gerrit', |
| 'recipe_engine/buildbucket', |
| 'recipe_engine/json', |
| 'recipe_engine/raw_io', |
| 'recipe_engine/path', |
| 'recipe_engine/platform', |
| 'recipe_engine/properties', |
| 'recipe_engine/python', |
| 'recipe_engine/step', |
| 'tryserver', |
| ] |
| |
| |
| def RunSteps(api): |
| if api.properties.get('set_failure_hash_with_no_steps'): |
| with api.tryserver.set_failure_hash(): |
| raise api.step.StepFailure('boom!') |
| |
| api.path['checkout'] = api.path['start_dir'] |
| if api.properties.get('patch_text'): |
| api.step('patch_text test', [ |
| 'echo', str(api.tryserver.get_footers(api.properties['patch_text']))]) |
| api.step('patch_text test', [ |
| 'echo', str(api.tryserver.get_footer( |
| 'Foo', api.properties['patch_text']))]) |
| return |
| |
| if api.tryserver.gerrit_change: |
| assert (api.tryserver.gerrit_change_repo_url == |
| 'https://chromium.googlesource.com/chromium/src') |
| assert api.tryserver.gerrit_change_fetch_ref == 'refs/changes/27/91827/1' |
| expected_target_ref = api.properties.get('target_ref', 'refs/heads/master') |
| assert api.tryserver.gerrit_change_target_ref == expected_target_ref |
| |
| if api.tryserver.is_gerrit_issue: |
| api.tryserver.get_footers() |
| api.tryserver.get_files_affected_by_patch( |
| api.properties.get('test_patch_root')) |
| |
| if api.tryserver.is_tryserver: |
| api.tryserver.set_subproject_tag('v8') |
| |
| api.tryserver.set_patch_failure_tryjob_result() |
| api.tryserver.set_do_not_retry_build() |
| api.tryserver.set_compile_failure_tryjob_result() |
| api.tryserver.set_test_failure_tryjob_result() |
| api.tryserver.set_invalid_test_results_tryjob_result() |
| api.tryserver.set_test_timeout_tryjob_result() |
| api.tryserver.set_test_expired_tryjob_result() |
| |
| api.tryserver.normalize_footer_name('Cr-Commit-Position') |
| |
| with api.tryserver.set_failure_hash(): |
| api.python.failing_step('fail', 'foo') |
| |
| |
| def GenTests(api): |
| description_step = api.override_step_data( |
| 'git_cl description', stdout=api.raw_io.output_text('foobar')) |
| # The 'test_patch_root' property used below is just so that these |
| # tests can avoid using the gclient module to calculate the |
| # patch root. Normal users would use gclient.get_gerrit_patch_root(). |
| yield (api.test('with_git_patch') + |
| api.properties( |
| path_config='buildbot', |
| patch_storage='git', |
| patch_project='v8', |
| patch_repo_url='http://patch.url/', |
| patch_ref='johndoe#123.diff', |
| test_patch_root='v8')) |
| |
| yield (api.test('with_git_patch_luci') + |
| api.properties( |
| patch_storage='git', |
| patch_project='v8', |
| patch_repo_url='http://patch.url/', |
| patch_ref='johndoe#123.diff', |
| test_patch_root='v8')) |
| |
| yield (api.test('with_wrong_patch') + |
| api.platform('win', 32) + |
| api.properties(test_patch_root='')) |
| |
| yield (api.test('with_gerrit_patch') + |
| api.buildbucket.try_build( |
| 'chromium', |
| 'linux', |
| git_repo='https://chromium.googlesource.com/chromium/src', |
| change_number=91827, |
| patch_set=1)) |
| |
| yield (api.test('with_gerrit_patch_and_target_ref') + |
| api.buildbucket.try_build( |
| 'chromium', |
| 'linux', |
| git_repo='https://chromium.googlesource.com/chromium/src', |
| change_number=91827, |
| patch_set=1) + |
| api.properties(target_ref='refs/heads/experiment') + |
| api.tryserver.gerrit_change_target_ref('refs/heads/experiment')) |
| |
| yield (api.test('with_wrong_patch_new') + api.platform('win', 32) + |
| api.properties(test_patch_root='sub\\project')) |
| |
| yield (api.test('basic_tags') + |
| api.properties( |
| patch_text='hihihi\nfoo:bar\nbam:baz', |
| footer='foo' |
| ) + |
| api.step_data( |
| 'parse description', |
| api.json.output({'Foo': ['bar']})) + |
| api.step_data( |
| 'parse description (2)', |
| api.json.output({'Foo': ['bar']})) |
| ) |
| |
| yield (api.test('set_failure_hash_with_no_steps') + |
| api.properties(set_failure_hash_with_no_steps=True)) |