Chromium Code Reviews| Index: scripts/slave/recipe_modules/chromium_tests/api.py |
| diff --git a/scripts/slave/recipe_modules/chromium_tests/api.py b/scripts/slave/recipe_modules/chromium_tests/api.py |
| index d628116a6caf786afa21c018d77b724286d89a12..8f4fa5ecb82814c3f8c7b97e7b47d54e01e6a993 100644 |
| --- a/scripts/slave/recipe_modules/chromium_tests/api.py |
| +++ b/scripts/slave/recipe_modules/chromium_tests/api.py |
| @@ -298,32 +298,35 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
| return test_runner |
| - def get_compile_targets_and_tests( |
| + def get_test_targets_compile_targets_and_tests( |
| self, mastername, buildername, master_dict, test_spec, |
| override_bot_type=None, override_tests=None): |
| - """Returns a tuple: list of compile targets and list of tests. |
| + """Returns a tuple: test target list, compile target list, and test list. |
| - The list of tests includes ones on the triggered testers.""" |
| + The test list includes ones on the triggered testers.""" |
| bot_config = master_dict.get('builders', {}).get(buildername) |
| bot_type = override_bot_type or bot_config.get('bot_type', 'builder_tester') |
| + if bot_type not in ['builder', 'builder_tester']: |
| + return [], [], [] |
| + |
| tests = bot_config.get('tests', []) |
| if override_tests is not None: |
| tests = override_tests |
| - if bot_type not in ['builder', 'builder_tester']: |
| - return [], [] |
| - |
| - compile_targets = set(bot_config.get('compile_targets', [])) |
| tests_including_triggered = list(tests) |
| for _, builder_dict in master_dict.get('builders', {}).iteritems(): |
| if builder_dict.get('parent_buildername') == buildername: |
| tests_including_triggered.extend(builder_dict.get('tests', [])) |
| + test_compile_targets = set() |
| if bot_config.get('add_tests_as_compile_targets', True): |
| for t in tests_including_triggered: |
| - compile_targets.update(t.compile_targets(self.m)) |
| + test_compile_targets.update(t.compile_targets(self.m)) |
| + |
| + compile_targets = set(bot_config.get('compile_targets', [])) |
| + compile_targets.update(test_compile_targets) |
| # Only add crash_service when we have explicit compile targets. |
| if (self.m.platform.is_win and |
| @@ -335,7 +338,20 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
| compile_targets.update(test_spec.get(buildername, {}).get( |
| 'additional_compile_targets', [])) |
| - return sorted(compile_targets), tests_including_triggered |
| + return (sorted(test_compile_targets), sorted(compile_targets), |
|
Paweł Hajdan Jr.
2015/11/24 13:20:41
Why do we need this change?
stgao
2015/11/24 23:19:19
Was trying to match to new api filter.does_patch_r
|
| + tests_including_triggered) |
| + |
| + def get_compile_targets_and_tests( |
| + self, mastername, buildername, master_dict, test_spec, |
| + override_bot_type=None, override_tests=None): |
| + """Returns a tuple: list of compile targets and list of tests. |
| + |
| + The list of tests includes ones on the triggered testers.""" |
| + _, compile_targets, tests_including_triggered = \ |
| + self.get_test_targets_compile_targets_and_tests( |
| + mastername, buildername, master_dict, test_spec, |
| + override_bot_type=override_bot_type, override_tests=override_tests) |
| + return compile_targets, tests_including_triggered |
| def transient_check(self, update_step, command): |
| """Runs command, checking for transience if this is a try job. |
| @@ -474,9 +490,15 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
| # be configured to match; we need to use the actual mastername |
| # and buildername we're running on, because it may be configured |
| # with different MB settings. |
| - real_mastername = self.m.properties['mastername'] |
| - real_buildername = self.m.properties['buildername'] |
| - self.m.chromium.run_mb(real_mastername, real_buildername, |
| + # However, use target_mastername and target_buildername instead if they |
| + # are available in the build properties. This gives a recipe running on a |
| + # trybot the flexibility to run MB in exactly the same configuration as |
| + # the continuous builder it tries to match. |
| + target_mastername = (self.m.properties.get('target_mastername') or |
|
Paweł Hajdan Jr.
2015/11/24 13:20:41
Let's make this explicit then, i.e. have run_mb_an
Dirk Pranke
2015/11/24 16:35:00
I actually told stgao to do things this way; becau
stgao
2015/11/24 23:19:19
Done.
|
| + self.m.properties['mastername']) |
| + target_buildername = (self.m.properties.get('target_buildername') or |
| + self.m.properties['buildername']) |
| + self.m.chromium.run_mb(target_mastername, target_buildername, |
| isolated_targets=isolated_targets, |
| name='generate_build_files%s' % name_suffix) |