| Index: scripts/slave/recipes/chromium_gn.py
|
| diff --git a/scripts/slave/recipes/chromium_gn.py b/scripts/slave/recipes/chromium_gn.py
|
| deleted file mode 100644
|
| index d8168dc30419754e832583cb2e2a46de7ab4e934..0000000000000000000000000000000000000000
|
| --- a/scripts/slave/recipes/chromium_gn.py
|
| +++ /dev/null
|
| @@ -1,266 +0,0 @@
|
| -# 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.
|
| -
|
| -from recipe_engine.types import freeze
|
| -
|
| -DEPS = [
|
| - 'depot_tools/bot_update',
|
| - 'chromium',
|
| - 'chromium_tests',
|
| - 'recipe_engine/json',
|
| - 'recipe_engine/path',
|
| - 'recipe_engine/platform',
|
| - 'recipe_engine/properties',
|
| - 'recipe_engine/python',
|
| - 'recipe_engine/step',
|
| - 'test_utils',
|
| - 'depot_tools/tryserver',
|
| - 'webrtc',
|
| -]
|
| -
|
| -
|
| -BUILDERS = freeze({
|
| - 'tryserver.v8': {
|
| - 'builders': {
|
| - 'v8_linux_chromium_gn_rel': {
|
| - 'chromium_config_kwargs': {
|
| - 'BUILD_CONFIG': 'Release',
|
| - 'TARGET_PLATFORM': 'linux',
|
| - 'TARGET_BITS': 64,
|
| - },
|
| - 'gclient_apply_config': [
|
| - 'v8_bleeding_edge_git',
|
| - 'chromium_lkcr',
|
| - 'show_v8_revision',
|
| - ],
|
| - 'root_override': 'src/v8',
|
| - 'set_component_rev': {'name': 'src/v8', 'rev_str': '%s'},
|
| - },
|
| - 'v8_android_chromium_gn_dbg': {
|
| - 'chromium_apply_config': ['gn_minimal_symbols'],
|
| - 'chromium_config_kwargs': {
|
| - 'BUILD_CONFIG': 'Debug',
|
| - 'TARGET_PLATFORM': 'android',
|
| - 'TARGET_ARCH': 'arm',
|
| - },
|
| - 'gclient_apply_config': [
|
| - 'android',
|
| - 'v8_bleeding_edge_git',
|
| - 'chromium_lkcr',
|
| - 'show_v8_revision',
|
| - ],
|
| - 'root_override': 'src/v8',
|
| - 'set_component_rev': {'name': 'src/v8', 'rev_str': '%s'},
|
| - },
|
| - },
|
| - },
|
| - 'client.v8.fyi': {
|
| - 'builders': {
|
| - 'V8 Linux GN': {
|
| - 'chromium_config_kwargs': {
|
| - 'BUILD_CONFIG': 'Release',
|
| - 'TARGET_PLATFORM': 'linux',
|
| - 'TARGET_BITS': 64,
|
| - },
|
| - 'gclient_apply_config': [
|
| - 'v8_bleeding_edge_git',
|
| - 'chromium_lkcr',
|
| - 'show_v8_revision',
|
| - ],
|
| - 'set_component_rev': {'name': 'src/v8', 'rev_str': '%s'},
|
| - },
|
| - 'V8 Android GN (dbg)': {
|
| - 'chromium_apply_config': ['gn_minimal_symbols'],
|
| - 'chromium_config_kwargs': {
|
| - 'BUILD_CONFIG': 'Debug',
|
| - 'TARGET_PLATFORM': 'android',
|
| - 'TARGET_ARCH': 'arm',
|
| - },
|
| - 'gclient_apply_config': [
|
| - 'android',
|
| - 'v8_bleeding_edge_git',
|
| - 'chromium_lkcr',
|
| - 'show_v8_revision',
|
| - ],
|
| - 'set_component_rev': {'name': 'src/v8', 'rev_str': '%s'},
|
| - },
|
| - },
|
| - },
|
| -})
|
| -
|
| -def tests_in_compile_targets(api, compile_targets, tests):
|
| - """Returns the tests in |tests| that have at least one of their compile
|
| - targets in |compile_targets|."""
|
| - result = []
|
| - for test in tests:
|
| - test_compile_targets = test.compile_targets(api)
|
| -
|
| - # Always return tests that don't require compile. Otherwise we'd never
|
| - # run them.
|
| - if ((set(compile_targets).intersection(set(test_compile_targets))) or
|
| - not test_compile_targets):
|
| - result.append(test)
|
| -
|
| - return result
|
| -
|
| -
|
| -def all_compile_targets(api, tests):
|
| - """Returns the compile_targets for all the Tests in |tests|."""
|
| - return sorted(set(x
|
| - for test in tests
|
| - for x in test.compile_targets(api)))
|
| -
|
| -
|
| -def _RunStepsInternal(api):
|
| - mastername = api.properties.get('mastername')
|
| - buildername = api.properties.get('buildername')
|
| - bot_config = BUILDERS[mastername]['builders'][buildername]
|
| - is_android = ('Android' in buildername or 'android' in buildername)
|
| - force_clobber = bot_config.get('force_clobber', False)
|
| -
|
| - api.chromium.configure_bot(BUILDERS, ['mb'])
|
| - bot_update_step = api.bot_update.ensure_checkout(
|
| - force=True, patch_root=bot_config.get('root_override'))
|
| -
|
| - # because the 'mb' config is applied, we skip running gyp in the
|
| - # the runhooks step.
|
| - api.chromium.runhooks()
|
| -
|
| - # TODO(dpranke): Unify this with the logic in the chromium_trybot and
|
| - # chromium recipes so that we can actually run the tests as well
|
| - # and deapply patches and retry as need be.
|
| - test_spec_file = '%s.json' % mastername
|
| - test_spec = api.chromium_tests.read_test_spec(api, test_spec_file)
|
| -
|
| - tests = list(api.chromium_tests.steps.generate_gtest(
|
| - api, api.chromium_tests, mastername, buildername, test_spec,
|
| - bot_update_step))
|
| -
|
| - scripts_compile_targets = \
|
| - api.chromium_tests.get_compile_targets_for_scripts().json.output
|
| - tests += list(api.chromium_tests.steps.generate_script(
|
| - api, api.chromium_tests, mastername, buildername, test_spec,
|
| - bot_update_step, scripts_compile_targets=scripts_compile_targets))
|
| -
|
| - additional_compile_targets = test_spec.get(buildername, {}).get(
|
| - 'additional_compile_targets',
|
| - ['chrome_public_apk' if is_android else 'all'])
|
| -
|
| - if api.tryserver.is_tryserver:
|
| - affected_files = api.tryserver.get_files_affected_by_patch()
|
| -
|
| - test_targets = all_compile_targets(api, tests)
|
| -
|
| - test_targets, compile_targets = \
|
| - api.chromium_tests.analyze(
|
| - affected_files,
|
| - test_targets,
|
| - additional_compile_targets,
|
| - 'trybot_analyze_config.json')
|
| - if compile_targets:
|
| - api.chromium.run_mb(mastername, buildername, use_goma=True)
|
| - api.chromium.compile(compile_targets,
|
| - force_clobber=force_clobber)
|
| - tests = tests_in_compile_targets(api, test_targets, tests)
|
| - else:
|
| - api.chromium.run_mb(mastername, buildername, use_goma=True)
|
| - api.chromium.compile(all_compile_targets(api, tests) +
|
| - additional_compile_targets,
|
| - force_clobber=force_clobber)
|
| -
|
| - if tests:
|
| - bot_config_object = api.chromium_tests.create_bot_config_object(
|
| - mastername, buildername)
|
| - if api.tryserver.is_tryserver:
|
| - api.chromium_tests.run_tests_on_tryserver(
|
| - bot_config_object, api, tests, bot_update_step, affected_files)
|
| - else:
|
| - api.chromium_tests.configure_swarming('chromium', precommit=False,
|
| - mastername=mastername)
|
| - test_runner = api.chromium_tests.create_test_runner(api, tests)
|
| - with api.chromium_tests.wrap_chromium_tests(bot_config_object, tests):
|
| - test_runner()
|
| -
|
| -
|
| -def RunSteps(api):
|
| - with api.tryserver.set_failure_hash():
|
| - return _RunStepsInternal(api)
|
| -
|
| -
|
| -def GenTests(api):
|
| - overrides = {}
|
| - for mastername, master_dict in BUILDERS.items():
|
| - for buildername in master_dict['builders']:
|
| -
|
| - # The Android bots are currently all only builders and cannot
|
| - # run tests; more importantly, the recipe isn't set up to run
|
| - # tests on Android correctly, and if we specify any tests in
|
| - # the step_data, the recipe will crash :). We will eventually
|
| - # fix this by killing this recipe altogether and moving to the
|
| - # main chromium recipes.
|
| - is_android = ('Android' in buildername or 'android' in buildername)
|
| - gtest_tests = [] if is_android else ['base_unittests']
|
| -
|
| - overrides.setdefault(mastername, {})
|
| - overrides[mastername][buildername] = (
|
| - api.override_step_data(
|
| - 'read test spec',
|
| - api.json.output({
|
| - buildername: {
|
| - 'gtest_tests': gtest_tests,
|
| - },
|
| - })))
|
| -
|
| - if 'tryserver' in mastername:
|
| - overrides[mastername][buildername] += api.override_step_data(
|
| - 'analyze',
|
| - api.json.output({
|
| - 'status': 'Found dependency',
|
| - 'test_targets': gtest_tests,
|
| - 'compile_targets': gtest_tests,
|
| - }))
|
| -
|
| - for test in api.chromium.gen_tests_for_builders(BUILDERS, overrides):
|
| - yield test
|
| -
|
| - yield (
|
| - api.test('compile_failure') +
|
| - api.platform.name('linux') +
|
| - api.properties.tryserver(
|
| - buildername='v8_linux_chromium_gn_rel',
|
| - mastername='tryserver.v8') +
|
| - api.step_data('compile', retcode=1) +
|
| - overrides['tryserver.v8']['v8_linux_chromium_gn_rel']
|
| - )
|
| -
|
| - yield (
|
| - api.test('use_v8_patch_on_chromium_gn_trybot') +
|
| - api.platform.name('linux') +
|
| - api.properties.tryserver(
|
| - buildername='v8_linux_chromium_gn_rel',
|
| - mastername='tryserver.v8',
|
| - patch_project='v8') +
|
| - overrides['tryserver.v8']['v8_linux_chromium_gn_rel']
|
| - )
|
| -
|
| - yield (
|
| - api.test('no_tests_run') +
|
| - api.platform.name('linux') +
|
| - api.properties.tryserver(
|
| - buildername='v8_linux_chromium_gn_rel',
|
| - mastername='tryserver.v8') +
|
| - api.override_step_data(
|
| - 'read test spec',
|
| - api.json.output({'linux_chromium_gn_rel': {
|
| - 'additional_compile_targets': ['net_unittests'],
|
| - 'gtest_tests': ['base_unittests'],
|
| - }})) +
|
| - api.override_step_data(
|
| - 'analyze',
|
| - api.json.output({
|
| - 'status': 'Found dependency',
|
| - 'test_targets': ['net_unittests'],
|
| - 'compile_targets': ['net_unittests'],
|
| - }))
|
| - )
|
|
|