Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 """ | 5 """ |
| 6 Recipe for building and running tests for Libyuv stand-alone. | 6 Recipe for building and running tests for Libyuv stand-alone. |
| 7 """ | 7 """ |
| 8 | 8 |
| 9 from recipe_engine.types import freeze | 9 from recipe_engine.types import freeze |
| 10 | 10 |
| 11 DEPS = [ | 11 DEPS = [ |
| 12 'chromium', | 12 'chromium', |
| 13 'chromium_android', | |
| 13 'depot_tools/bot_update', | 14 'depot_tools/bot_update', |
| 14 'depot_tools/gclient', | 15 'depot_tools/gclient', |
| 15 'depot_tools/tryserver', | 16 'depot_tools/tryserver', |
| 16 'libyuv', | 17 'libyuv', |
| 17 'recipe_engine/path', | 18 'recipe_engine/path', |
| 18 'recipe_engine/platform', | 19 'recipe_engine/platform', |
| 19 'recipe_engine/properties', | 20 'recipe_engine/properties', |
| 20 'recipe_engine/step', | 21 'recipe_engine/step', |
| 21 ] | 22 ] |
| 22 | 23 |
| 24 | |
| 23 def RunSteps(api): | 25 def RunSteps(api): |
| 24 libyuv = api.libyuv | 26 libyuv = api.libyuv |
| 25 libyuv.apply_bot_config(libyuv.BUILDERS, libyuv.RECIPE_CONFIGS) | 27 libyuv.apply_bot_config(libyuv.BUILDERS, libyuv.RECIPE_CONFIGS) |
| 26 | 28 |
| 27 api.bot_update.ensure_checkout(force=True) | 29 libyuv.checkout() |
| 28 api.chromium.ensure_goma() | 30 api.chromium.ensure_goma() |
| 29 api.chromium.runhooks() | 31 api.chromium.runhooks() |
| 30 | 32 |
| 31 if libyuv.should_build: | 33 if libyuv.should_build: |
| 32 if api.chromium.c.project_generator.tool == 'gn': | 34 if api.chromium.c.project_generator.tool == 'gn': |
| 33 api.chromium.run_gn(use_goma=True) | 35 api.chromium.run_gn(use_goma=True) |
| 34 api.chromium.compile(targets=['all']) | 36 api.chromium.compile(targets=['all']) |
| 35 else: | 37 else: |
| 36 api.chromium.compile() | 38 api.chromium.compile() |
| 39 if libyuv.should_upload_build: | |
| 40 libyuv.package_build() | |
| 41 | |
| 42 if libyuv.should_download_build: | |
| 43 libyuv.extract_build() | |
| 37 | 44 |
| 38 if libyuv.should_test: | 45 if libyuv.should_test: |
| 39 api.chromium.runtest('libyuv_unittest') | 46 libyuv.runtests() |
| 40 | 47 |
| 48 libyuv.maybe_trigger() | |
| 41 | 49 |
| 42 def _sanitize_nonalpha(text): | 50 def _sanitize_nonalpha(text): |
| 43 return ''.join(c if c.isalnum() else '_' for c in text.lower()) | 51 return ''.join(c if c.isalnum() else '_' for c in text.lower()) |
| 44 | 52 |
| 45 | 53 |
| 46 def GenTests(api): | 54 def GenTests(api): |
| 47 builders = api.libyuv.BUILDERS | 55 builders = api.libyuv.BUILDERS |
| 48 | 56 |
| 49 def generate_builder(mastername, buildername, revision, suffix=None): | 57 def generate_builder(mastername, buildername, revision, suffix=None): |
| 50 suffix = suffix or '' | 58 suffix = suffix or '' |
| 51 bot_config = builders[mastername]['builders'][buildername] | 59 bot_config = builders[mastername]['builders'][buildername] |
| 60 bot_type = bot_config.get('bot_type', 'builder_tester') | |
| 61 | |
| 62 if bot_type in ('builder', 'builder_tester'): | |
| 63 assert bot_config.get('parent_buildername') is None, ( | |
|
Michael Achenbach
2016/09/06 08:17:49
Very strict. We don't ensure many things that we d
kjellander_chromium
2016/09/06 10:52:34
Let's just remove this check instead (it was copy-
| |
| 64 'Unexpected parent_buildername for builder %r on master %r.' % | |
| 65 (buildername, mastername)) | |
| 52 | 66 |
| 53 chromium_kwargs = bot_config.get('chromium_config_kwargs', {}) | 67 chromium_kwargs = bot_config.get('chromium_config_kwargs', {}) |
| 54 test = ( | 68 test = ( |
| 55 api.test('%s_%s%s' % (_sanitize_nonalpha(mastername), | 69 api.test('%s_%s%s' % (_sanitize_nonalpha(mastername), |
| 56 _sanitize_nonalpha(buildername), suffix)) + | 70 _sanitize_nonalpha(buildername), suffix)) + |
| 57 api.properties(mastername=mastername, | 71 api.properties(mastername=mastername, |
| 58 buildername=buildername, | 72 buildername=buildername, |
| 59 slavename='slavename', | 73 slavename='slavename', |
| 60 BUILD_CONFIG=chromium_kwargs['BUILD_CONFIG']) + | 74 BUILD_CONFIG=chromium_kwargs['BUILD_CONFIG']) + |
| 61 api.platform(bot_config['testing']['platform'], | 75 api.platform(bot_config['testing']['platform'], |
| 62 chromium_kwargs.get('TARGET_BITS', 64)) | 76 chromium_kwargs.get('TARGET_BITS', 64)) |
| 63 ) | 77 ) |
| 64 | 78 |
| 79 if bot_config.get('parent_buildername'): | |
| 80 test += api.properties( | |
| 81 parent_buildername=bot_config['parent_buildername']) | |
| 82 | |
| 65 if revision: | 83 if revision: |
| 66 test += api.properties(revision=revision) | 84 test += api.properties(revision=revision) |
| 85 if bot_type == 'tester': | |
| 86 test += api.properties(parent_got_revision=revision) | |
| 67 | 87 |
| 68 if mastername.startswith('tryserver'): | 88 if mastername.startswith('tryserver'): |
| 69 test += api.properties(patch_url='try_job_svn_patch') | 89 test += api.properties(patch_url='try_job_svn_patch') |
| 90 test += api.properties(buildnumber=1337) | |
| 70 return test | 91 return test |
| 71 | 92 |
| 72 for mastername, master_config in builders.iteritems(): | 93 for mastername, master_config in builders.iteritems(): |
| 73 for buildername in master_config['builders'].keys(): | 94 for buildername in master_config['builders'].keys(): |
| 74 yield generate_builder(mastername, buildername, revision='12345') | 95 yield generate_builder(mastername, buildername, revision='12345') |
| 75 | 96 |
| 76 # Forced builds (not specifying any revision) and test failures. | 97 # Forced builds (not specifying any revision) and test failures. |
| 77 mastername = 'client.libyuv' | 98 mastername = 'client.libyuv' |
| 78 yield generate_builder(mastername, 'Linux64 Debug', revision=None, | 99 yield generate_builder(mastername, 'Linux64 Debug', revision=None, |
| 79 suffix='_forced') | 100 suffix='_forced') |
| 80 yield generate_builder(mastername, 'Android Debug', revision=None, | 101 yield generate_builder(mastername, 'Android Debug', revision=None, |
| 81 suffix='_forced') | 102 suffix='_forced') |
| 82 | 103 |
| 83 yield generate_builder('tryserver.libyuv', 'linux', revision=None, | 104 yield generate_builder('tryserver.libyuv', 'linux', revision=None, |
| 84 suffix='_forced') | 105 suffix='_forced') |
| OLD | NEW |