| 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 from infra.libs.infra_types import freeze | 5 from infra.libs.infra_types import freeze |
| 6 | 6 |
| 7 DEPS = [ | 7 DEPS = [ |
| 8 'bot_update', | 8 'bot_update', |
| 9 'chromium', | 9 'chromium', |
| 10 'chromium_tests', | 10 'chromium_tests', |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 }, | 39 }, |
| 40 'chromium.webkit': { | 40 'chromium.webkit': { |
| 41 'builders': { | 41 'builders': { |
| 42 'Linux GN': { | 42 'Linux GN': { |
| 43 'chromium_config_kwargs': { | 43 'chromium_config_kwargs': { |
| 44 'BUILD_CONFIG': 'Release', | 44 'BUILD_CONFIG': 'Release', |
| 45 'TARGET_PLATFORM': 'linux', | 45 'TARGET_PLATFORM': 'linux', |
| 46 'TARGET_BITS': 64, | 46 'TARGET_BITS': 64, |
| 47 }, | 47 }, |
| 48 'gclient_apply_config': ['blink'], | 48 'gclient_apply_config': ['blink'], |
| 49 'should_run_mojo_tests': True, | |
| 50 }, | 49 }, |
| 51 'Linux GN (dbg)': { | 50 'Linux GN (dbg)': { |
| 52 'chromium_apply_config': ['gn_component_build'], | 51 'chromium_apply_config': ['gn_component_build'], |
| 53 'chromium_config_kwargs': { | 52 'chromium_config_kwargs': { |
| 54 'BUILD_CONFIG': 'Debug', | 53 'BUILD_CONFIG': 'Debug', |
| 55 'TARGET_PLATFORM': 'linux', | 54 'TARGET_PLATFORM': 'linux', |
| 56 'TARGET_BITS': 64, | 55 'TARGET_BITS': 64, |
| 57 }, | 56 }, |
| 58 'gclient_apply_config': ['blink'], | 57 'gclient_apply_config': ['blink'], |
| 59 }, | 58 }, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 'TARGET_ARCH': 'arm', | 105 'TARGET_ARCH': 'arm', |
| 107 }, | 106 }, |
| 108 'gclient_apply_config': ['android'], | 107 'gclient_apply_config': ['android'], |
| 109 }, | 108 }, |
| 110 'Linux GN': { | 109 'Linux GN': { |
| 111 'chromium_config_kwargs': { | 110 'chromium_config_kwargs': { |
| 112 'BUILD_CONFIG': 'Release', | 111 'BUILD_CONFIG': 'Release', |
| 113 'TARGET_PLATFORM': 'linux', | 112 'TARGET_PLATFORM': 'linux', |
| 114 'TARGET_BITS': 64, | 113 'TARGET_BITS': 64, |
| 115 }, | 114 }, |
| 116 'should_run_gn_check': False, | |
| 117 'should_run_tests': True, | |
| 118 }, | 115 }, |
| 119 'Linux GN Clobber': { | 116 'Linux GN Clobber': { |
| 120 'chromium_config_kwargs': { | 117 'chromium_config_kwargs': { |
| 121 'BUILD_CONFIG': 'Release', | 118 'BUILD_CONFIG': 'Release', |
| 122 'TARGET_PLATFORM': 'linux', | 119 'TARGET_PLATFORM': 'linux', |
| 123 'TARGET_BITS': 64, | 120 'TARGET_BITS': 64, |
| 124 }, | 121 }, |
| 125 'force_clobber': True, | 122 'force_clobber': True, |
| 126 }, | 123 }, |
| 127 'Linux GN (dbg)': { | 124 'Linux GN (dbg)': { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 'tryserver.chromium.linux': { | 170 'tryserver.chromium.linux': { |
| 174 'builders': { | 171 'builders': { |
| 175 'android_chromium_gn_compile_rel': { | 172 'android_chromium_gn_compile_rel': { |
| 176 'chromium_apply_config': ['gn_minimal_symbols'], | 173 'chromium_apply_config': ['gn_minimal_symbols'], |
| 177 'chromium_config_kwargs': { | 174 'chromium_config_kwargs': { |
| 178 'BUILD_CONFIG': 'Release', | 175 'BUILD_CONFIG': 'Release', |
| 179 'TARGET_PLATFORM': 'android', | 176 'TARGET_PLATFORM': 'android', |
| 180 'TARGET_ARCH': 'arm', | 177 'TARGET_ARCH': 'arm', |
| 181 }, | 178 }, |
| 182 'gclient_apply_config': ['android'], | 179 'gclient_apply_config': ['android'], |
| 183 'should_run_gn_check': False, | |
| 184 }, | 180 }, |
| 185 'android_chromium_gn_compile_dbg': { | 181 'android_chromium_gn_compile_dbg': { |
| 186 'chromium_apply_config': ['gn_minimal_symbols'], | 182 'chromium_apply_config': ['gn_minimal_symbols'], |
| 187 'chromium_config_kwargs': { | 183 'chromium_config_kwargs': { |
| 188 'BUILD_CONFIG': 'Debug', | 184 'BUILD_CONFIG': 'Debug', |
| 189 'TARGET_PLATFORM': 'android', | 185 'TARGET_PLATFORM': 'android', |
| 190 'TARGET_ARCH': 'arm', | 186 'TARGET_ARCH': 'arm', |
| 191 }, | 187 }, |
| 192 'gclient_apply_config': ['android'], | 188 'gclient_apply_config': ['android'], |
| 193 }, | 189 }, |
| 194 'linux_chromium_gn_rel': { | 190 'linux_chromium_gn_rel': { |
| 195 'chromium_config_kwargs': { | 191 'chromium_config_kwargs': { |
| 196 'BUILD_CONFIG': 'Release', | 192 'BUILD_CONFIG': 'Release', |
| 197 'TARGET_PLATFORM': 'linux', | 193 'TARGET_PLATFORM': 'linux', |
| 198 'TARGET_BITS': 64, | 194 'TARGET_BITS': 64, |
| 199 }, | 195 }, |
| 200 'should_run_gn_check': False, | |
| 201 'should_run_tests': True, | |
| 202 }, | 196 }, |
| 203 'linux_chromium_gn_dbg': { | 197 'linux_chromium_gn_dbg': { |
| 204 'chromium_apply_config': ['gn_component_build'], | 198 'chromium_apply_config': ['gn_component_build'], |
| 205 'chromium_config_kwargs': { | 199 'chromium_config_kwargs': { |
| 206 'BUILD_CONFIG': 'Debug', | 200 'BUILD_CONFIG': 'Debug', |
| 207 'TARGET_PLATFORM': 'linux', | 201 'TARGET_PLATFORM': 'linux', |
| 208 'TARGET_BITS': 64, | 202 'TARGET_BITS': 64, |
| 209 }, | 203 }, |
| 210 }, | 204 }, |
| 211 'linux_chromium_gn_chromeos_rel': { | 205 'linux_chromium_gn_chromeos_rel': { |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 build_output_dir='//out/%s' % api.chromium.c.build_config_fs) | 486 build_output_dir='//out/%s' % api.chromium.c.build_config_fs) |
| 493 if requires_compile: | 487 if requires_compile: |
| 494 api.chromium.compile(compile_targets, | 488 api.chromium.compile(compile_targets, |
| 495 force_clobber=force_clobber) | 489 force_clobber=force_clobber) |
| 496 tests = tests_in_compile_targets(api, compile_targets, tests) | 490 tests = tests_in_compile_targets(api, compile_targets, tests) |
| 497 else: | 491 else: |
| 498 api.chromium.compile(all_compile_targets(api, tests) + | 492 api.chromium.compile(all_compile_targets(api, tests) + |
| 499 additional_compile_targets, | 493 additional_compile_targets, |
| 500 force_clobber=force_clobber) | 494 force_clobber=force_clobber) |
| 501 | 495 |
| 502 # TODO(dpranke): Ensure that every bot runs w/ --check, then make | 496 if tests: |
| 503 # it be on by default. | |
| 504 if bot_config.get('should_run_gn_check', True): | |
| 505 api.chromium.run_gn_check() | |
| 506 | |
| 507 if tests and bot_config.get('should_run_tests', False): | |
| 508 if api.tryserver.is_tryserver: | 497 if api.tryserver.is_tryserver: |
| 509 api.chromium_tests.run_tests_and_deapply_as_needed( | 498 api.chromium_tests.run_tests_and_deapply_as_needed( |
| 510 mastername, api, tests, bot_update_step) | 499 mastername, api, tests, bot_update_step) |
| 511 else: | 500 else: |
| 512 api.chromium_tests.configure_swarming('chromium', precommit=False, | 501 api.chromium_tests.configure_swarming('chromium', precommit=False, |
| 513 mastername=mastername) | 502 mastername=mastername) |
| 514 test_runner = api.chromium_tests.create_test_runner(api, tests) | 503 test_runner = api.chromium_tests.create_test_runner(api, tests) |
| 515 with api.chromium_tests.wrap_chromium_tests(mastername): | 504 with api.chromium_tests.wrap_chromium_tests(mastername): |
| 516 test_runner() | 505 test_runner() |
| 517 | 506 |
| 518 | 507 |
| 519 def GenSteps(api): | 508 def GenSteps(api): |
| 520 with api.tryserver.set_failure_hash(): | 509 with api.tryserver.set_failure_hash(): |
| 521 return _GenStepsInternal(api) | 510 return _GenStepsInternal(api) |
| 522 | 511 |
| 523 | 512 |
| 524 def GenTests(api): | 513 def GenTests(api): |
| 525 overrides = {} | 514 overrides = {} |
| 526 for mastername, master_dict in BUILDERS.items(): | 515 for mastername, master_dict in BUILDERS.items(): |
| 527 for buildername in master_dict['builders']: | 516 for buildername in master_dict['builders']: |
| 517 |
| 518 # The Android bots are currently all only builders and cannot |
| 519 # run tests; more importantly, the recipe isn't set up to run |
| 520 # tests on Android correctly, and if we specify any tests in |
| 521 # the step_data, the recipe will crash :). We will eventually |
| 522 # fix this by killing this recipe altogether and moving to the |
| 523 # main chromium recipes. |
| 524 is_android = ('Android' in buildername or 'android' in buildername) |
| 525 gtest_tests = [] if is_android else ['base_unittests'] |
| 526 |
| 528 overrides.setdefault(mastername, {}) | 527 overrides.setdefault(mastername, {}) |
| 529 overrides[mastername][buildername] = ( | 528 overrides[mastername][buildername] = ( |
| 530 api.override_step_data( | 529 api.override_step_data( |
| 531 'read test spec', | 530 'read test spec', |
| 532 api.json.output({ | 531 api.json.output({ |
| 533 buildername: { | 532 buildername: { |
| 534 'gtest_tests': ['base_unittests'], | 533 'gtest_tests': gtest_tests, |
| 535 }, | 534 }, |
| 536 }))) | 535 }))) |
| 537 | 536 |
| 538 if 'tryserver' in mastername: | 537 if 'tryserver' in mastername: |
| 539 overrides[mastername][buildername] += api.override_step_data( | 538 overrides[mastername][buildername] += api.override_step_data( |
| 540 'analyze', | 539 'analyze', |
| 541 api.json.output({ | 540 api.json.output({ |
| 542 'status': 'Found dependency', | 541 'status': 'Found dependency', |
| 543 'targets': ['base_unittests'], | 542 'targets': gtest_tests, |
| 544 'build_targets': ['base_unittests'], | 543 'build_targets': gtest_tests, |
| 545 })) | 544 })) |
| 546 | 545 |
| 547 for test in api.chromium.gen_tests_for_builders(BUILDERS, overrides): | 546 for test in api.chromium.gen_tests_for_builders(BUILDERS, overrides): |
| 548 yield test | 547 yield test |
| 549 | 548 |
| 550 yield ( | 549 yield ( |
| 551 api.test('compile_failure') + | 550 api.test('compile_failure') + |
| 552 api.platform.name('linux') + | 551 api.platform.name('linux') + |
| 553 api.properties.tryserver( | 552 api.properties.tryserver( |
| 554 buildername='linux_chromium_gn_rel', | 553 buildername='linux_chromium_gn_rel', |
| (...skipping 25 matching lines...) Expand all Loading... |
| 580 'gtest_tests': ['base_unittests'], | 579 'gtest_tests': ['base_unittests'], |
| 581 }})) + | 580 }})) + |
| 582 api.override_step_data( | 581 api.override_step_data( |
| 583 'analyze', | 582 'analyze', |
| 584 api.json.output({ | 583 api.json.output({ |
| 585 'status': 'Found dependency', | 584 'status': 'Found dependency', |
| 586 'targets': ['net_unittests'], | 585 'targets': ['net_unittests'], |
| 587 'build_targets': ['net_unittests'], | 586 'build_targets': ['net_unittests'], |
| 588 })) | 587 })) |
| 589 ) | 588 ) |
| OLD | NEW |