| # 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.post_process import Filter |
| |
| DEPS = [ |
| 'chromium', |
| 'chromium_tests', |
| 'recipe_engine/json', |
| 'recipe_engine/platform', |
| 'recipe_engine/properties', |
| 'recipe_engine/raw_io', |
| 'recipe_engine/runtime', |
| 'recipe_engine/step', |
| ] |
| |
| from recipe_engine import post_process |
| |
| def RunSteps(api): |
| mastername = api.properties.get('mastername') |
| buildername = api.properties.get('buildername') |
| use_goma_module = api.properties.get('use_goma_module', False) |
| out_dir = api.properties.get('out_dir', None) |
| failfast = api.properties.get('failfast', False); |
| ninja_confirm_noop = api.properties.get('ninja_confirm_noop', False) |
| configs = api.properties.get('configs', []) |
| |
| with api.chromium.chromium_layout(): |
| bot_config = api.chromium_tests.create_bot_config_object( |
| [api.chromium_tests.create_bot_id(mastername, buildername)]) |
| api.chromium_tests.configure_build(bot_config) |
| |
| if failfast: |
| api.chromium.apply_config('goma_failfast') |
| |
| if ninja_confirm_noop: |
| api.chromium.apply_config('ninja_confirm_noop') |
| |
| for config in configs: |
| api.chromium.apply_config(config) |
| |
| api.chromium_tests.prepare_checkout(bot_config) |
| |
| mb_config_path = api.properties.get('mb_config_path') |
| |
| api.chromium.mb_gen(mastername, buildername, use_goma=True, |
| mb_config_path=mb_config_path, |
| android_version_code=3, |
| android_version_name="example") |
| |
| api.chromium.compile( |
| targets=['All'], out_dir=out_dir, |
| use_goma_module=use_goma_module) |
| |
| |
| def GenTests(api): |
| yield api.test('basic_out_dir') + api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| ) |
| |
| yield api.test('basic_out_dir_with_custom_mb_config') + api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| mb_config_path='/custom/config.pyl', |
| ) |
| |
| yield api.test('basic_out_dir_without_compile_py') + api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| ) |
| |
| yield api.test('basic_out_dir_with_goma_module') + api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| use_goma_module=True, |
| out_dir='/tmp', |
| ) |
| |
| yield api.test('basic_no_out_dir_with_goma_module') + api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| use_goma_module=True, |
| ) |
| |
| yield (api.test('basic_out_dir_goma_module_build_failure') + |
| api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| use_goma_module=True, |
| failfast=True, |
| ) + api.step_data('compile', retcode=1) + |
| api.step_data( |
| 'postprocess_for_goma.goma_jsonstatus', |
| api.json.output( |
| data={ |
| 'notice': [ |
| { |
| 'infra_status': { |
| 'ping_status_code': 200, |
| 'num_user_error': 1, |
| }, |
| }, |
| ], |
| }))) |
| |
| yield (api.test('basic_out_dir_ninja_build_failure') + |
| api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| use_goma_module=False, |
| ) + api.step_data('compile', retcode=1)) |
| |
| yield (api.test('basic_out_dir_ninja_no_op_failure') + |
| api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| use_goma_module=True, |
| ninja_confirm_noop=True, |
| ) + api.override_step_data( |
| 'compile confirm no-op', |
| stdout=api.raw_io.output( |
| "ninja explain: chrome is dirty\n"))) |
| |
| yield (api.test('basic_out_dir_ninja_no_op_warning') + |
| api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| use_goma_module=True, |
| ninja_confirm_noop=False, |
| ) + api.override_step_data( |
| 'compile confirm no-op', |
| stdout=api.raw_io.output( |
| "ninja explain: chrome is dirty\n")) + |
| api.post_process(post_process.AnnotationContains, 'compile confirm no-op', |
| ['confirm no-op failure']) + |
| api.post_process(post_process.StatusSuccess) + |
| api.post_process(post_process.DropExpectation)) |
| |
| yield (api.test('basic_out_dir_goma_module_start_failure') + |
| api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| use_goma_module=True, |
| failfast=True, |
| ) + api.step_data('preprocess_for_goma.start_goma', retcode=1) + |
| api.step_data( |
| 'preprocess_for_goma.goma_jsonstatus', |
| api.json.output( |
| data={ |
| 'notice': [ |
| { |
| "compile_error": "COMPILER_PROXY_UNREACHABLE", |
| }, |
| ], |
| }))) |
| |
| yield (api.test('basic_out_dir_goma_module_ping_failure') + |
| api.properties( |
| mastername='chromium.android', |
| buildername='Android arm Builder (dbg)', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| use_goma_module=True, |
| failfast=True, |
| ) + api.step_data('preprocess_for_goma.start_goma', retcode=1) + |
| api.step_data( |
| 'preprocess_for_goma.goma_jsonstatus', |
| api.json.output( |
| data={ |
| 'notice': [ |
| { |
| 'infra_status': { |
| 'ping_status_code': 408, |
| }, |
| }, |
| ], |
| }))) |
| |
| yield (api.test('mac_basic') + |
| api.platform('mac', 64) + |
| api.properties( |
| mastername='chromium.mac', |
| buildername='Mac Builder', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| target_platform='mac', |
| ) |
| ) |
| |
| yield (api.test('mac_basic_luci') + |
| api.platform('mac', 64) + |
| api.properties( |
| mastername='chromium.mac', |
| buildername='Mac Builder', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| target_platform='mac', |
| ) + |
| api.runtime(is_luci=True, is_experimental=False) + |
| api.post_process(Filter('gclient runhooks')) |
| ) |
| |
| yield (api.test('mac_toolchain') + |
| api.platform('mac', 64) + |
| api.properties( |
| mastername='chromium.mac', |
| buildername='Mac Builder', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| target_platform='mac', |
| configs=['mac_toolchain'], |
| ) |
| ) |
| |
| yield (api.test('chromeos_simplechrome') + |
| api.platform('linux', 64) + |
| api.properties( |
| mastername='chromium.chromiumos', |
| buildername='chromeos-amd64-generic-rel', |
| bot_id='build1-a1', |
| buildnumber='77457', |
| out_dir='/tmp', |
| ) |
| ) |