Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(644)

Unified Diff: scripts/slave/recipe_modules/chromium_tests/api.py

Issue 1416763007: Add a recipe to identify culprits for chromium compile failures. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Rebase and Address comments. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/filter/api.py » ('j') | scripts/slave/recipe_modules/filter/api.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698