OLD | NEW |
---|---|
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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_android', | 10 'chromium_android', |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
277 return result | 277 return result |
278 | 278 |
279 | 279 |
280 def all_compile_targets(api, tests): | 280 def all_compile_targets(api, tests): |
281 """Returns the compile_targets for all the Tests in |tests|.""" | 281 """Returns the compile_targets for all the Tests in |tests|.""" |
282 return sorted(set(x | 282 return sorted(set(x |
283 for test in tests | 283 for test in tests |
284 for x in test.compile_targets(api))) | 284 for x in test.compile_targets(api))) |
285 | 285 |
286 | 286 |
287 def is_source_file(api, file): | |
288 """Returns true iff the file is a source file.""" | |
289 _, ext = api.path.splitext(file) | |
290 return ext in [".cc", ".cpp", ".h", ".java", ".mm"] | |
291 | |
292 | |
287 def _GenStepsInternal(api): | 293 def _GenStepsInternal(api): |
288 def get_bot_config(mastername, buildername): | 294 def get_bot_config(mastername, buildername): |
289 master_dict = BUILDERS.get(mastername, {}) | 295 master_dict = BUILDERS.get(mastername, {}) |
290 return master_dict.get('builders', {}).get(buildername) | 296 return master_dict.get('builders', {}).get(buildername) |
291 | 297 |
292 mastername = api.properties.get('mastername') | 298 mastername = api.properties.get('mastername') |
293 buildername = api.properties.get('buildername') | 299 buildername = api.properties.get('buildername') |
294 bot_config = get_bot_config(mastername, buildername) | 300 bot_config = get_bot_config(mastername, buildername) |
295 api.chromium_tests.configure_swarming('chromium', precommit=True) | 301 api.chromium_tests.configure_swarming('chromium', precommit=True) |
296 | 302 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
352 override_bot_type='builder_tester', | 358 override_bot_type='builder_tester', |
353 override_tests=tests) | 359 override_tests=tests) |
354 | 360 |
355 requires_compile, _, compile_targets = \ | 361 requires_compile, _, compile_targets = \ |
356 api.chromium_tests.analyze( | 362 api.chromium_tests.analyze( |
357 affected_files, | 363 affected_files, |
358 all_compile_targets(api, tests + tests_including_triggered), | 364 all_compile_targets(api, tests + tests_including_triggered), |
359 compile_targets, | 365 compile_targets, |
360 'trybot_analyze_config.json') | 366 'trybot_analyze_config.json') |
361 | 367 |
362 if not requires_compile: | 368 if requires_compile: |
363 return | 369 tests = tests_in_compile_targets(api, compile_targets, tests) |
370 tests_including_triggered = tests_in_compile_targets( | |
371 api, compile_targets, tests_including_triggered) | |
364 | 372 |
365 tests = tests_in_compile_targets(api, compile_targets, tests) | 373 api.chromium_tests.compile_specific_targets( |
366 tests_including_triggered = tests_in_compile_targets( | 374 bot_config['mastername'], |
367 api, compile_targets, tests_including_triggered) | 375 bot_config['buildername'], |
368 | 376 bot_update_step, |
369 api.chromium_tests.compile_specific_targets( | 377 master_dict, |
370 bot_config['mastername'], | 378 test_spec, |
371 bot_config['buildername'], | 379 compile_targets, |
372 bot_update_step, | 380 tests_including_triggered, |
373 master_dict, | 381 override_bot_type='builder_tester') |
374 test_spec, | 382 else: |
375 compile_targets, | 383 # Even though the patch doesn't require compile on this platform, we'd still |
376 tests_including_triggered, | 384 # like to run tests not depending on compiled targets (that's obviously not |
377 override_bot_type='builder_tester') | 385 # covered by the "analyze" step) if any source files change. |
386 if any([is_source_file(api, f) for f in affected_files]): | |
387 tests = [t for t in tests if not t.compile_targets(api)] | |
388 else: | |
389 return | |
luqui
2015/03/02 23:21:53
You could either add a test for it in GenTests (ge
jam
2015/03/04 15:16:41
right, i didn't know how to do the "somehow" part
luqui
2015/03/04 21:51:04
You could try
yield (api.test('...') +
| |
378 | 390 |
379 def deapply_patch_fn(failing_tests): | 391 def deapply_patch_fn(failing_tests): |
380 api.chromium_tests.deapply_patch(bot_update_step) | 392 api.chromium_tests.deapply_patch(bot_update_step) |
381 compile_targets = list(api.itertools.chain( | 393 compile_targets = list(api.itertools.chain( |
382 *[t.compile_targets(api) for t in failing_tests])) | 394 *[t.compile_targets(api) for t in failing_tests])) |
383 if compile_targets: | 395 if compile_targets: |
384 # Remove duplicate targets. | 396 # Remove duplicate targets. |
385 compile_targets = sorted(set(compile_targets)) | 397 compile_targets = sorted(set(compile_targets)) |
386 has_failing_swarming_tests = [ | 398 has_failing_swarming_tests = [ |
387 t for t in failing_tests if t.uses_swarming] | 399 t for t in failing_tests if t.uses_swarming] |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
888 tryserver=True) | 900 tryserver=True) |
889 yield step_failure(mastername='tryserver.chromium.linux', | 901 yield step_failure(mastername='tryserver.chromium.linux', |
890 buildername='android_clang_dbg_recipe', | 902 buildername='android_clang_dbg_recipe', |
891 steps=['findbugs (with patch)'], | 903 steps=['findbugs (with patch)'], |
892 tryserver=True) | 904 tryserver=True) |
893 yield step_failure(mastername='tryserver.chromium.linux', | 905 yield step_failure(mastername='tryserver.chromium.linux', |
894 buildername='android_clang_dbg_recipe', | 906 buildername='android_clang_dbg_recipe', |
895 steps=['findbugs (with patch)', | 907 steps=['findbugs (with patch)', |
896 'findbugs (without patch)'], | 908 'findbugs (without patch)'], |
897 tryserver=True) | 909 tryserver=True) |
OLD | NEW |