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

Side by Side Diff: scripts/slave/recipe_modules/chromium_tests/bot_config_and_test_db.py

Issue 1928783004: Extend chromium_tests trigger to work across masters. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Expectations Created 4 years, 7 months 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 unified diff | Download patch
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 import ast 5 import ast
6 import copy 6 import copy
7 7
8 from recipe_engine.types import freeze 8 from recipe_engine.types import freeze
9 9
10 10
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 if bot_id.get('tester'): 113 if bot_id.get('tester'):
114 bot_config = bot_db.get_bot_config( 114 bot_config = bot_db.get_bot_config(
115 bot_id['mastername'], bot_id['tester']) 115 bot_id['mastername'], bot_id['tester'])
116 tests.extend([copy.deepcopy(t) for t in bot_config.get('tests', [])]) 116 tests.extend([copy.deepcopy(t) for t in bot_config.get('tests', [])])
117 117
118 tests_including_triggered = list(tests) 118 tests_including_triggered = list(tests)
119 for bot_id in self._bot_ids: 119 for bot_id in self._bot_ids:
120 bot_config = bot_db.get_bot_config( 120 bot_config = bot_db.get_bot_config(
121 bot_id['mastername'], bot_id['buildername']) 121 bot_id['mastername'], bot_id['buildername'])
122 122
123 for _, test_bot in bot_db.bot_configs_matching_parent_buildername( 123 for _, _, test_bot in bot_db.bot_configs_matching_parent_buildername(
124 bot_id['mastername'], bot_id['buildername']): 124 bot_id['mastername'], bot_id['buildername']):
125 tests_including_triggered.extend(test_bot.get('tests', [])) 125 tests_including_triggered.extend(test_bot.get('tests', []))
126 126
127 return tests, tests_including_triggered 127 return tests, tests_including_triggered
128 128
129 def get_compile_targets(self, chromium_tests_api, bot_db, tests): 129 def get_compile_targets(self, chromium_tests_api, bot_db, tests):
130 compile_targets = set() 130 compile_targets = set()
131 for bot_id in self._bot_ids: 131 for bot_id in self._bot_ids:
132 bot_config = bot_db.get_bot_config( 132 bot_config = bot_db.get_bot_config(
133 bot_id['mastername'], bot_id['buildername']) 133 bot_id['mastername'], bot_id['buildername'])
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 'test_spec': test_spec } 175 'test_spec': test_spec }
176 176
177 def get_bot_config(self, mastername, buildername): 177 def get_bot_config(self, mastername, buildername):
178 return self._db[mastername]['master_dict'].get('builders', {}).get( 178 return self._db[mastername]['master_dict'].get('builders', {}).get(
179 buildername) 179 buildername)
180 180
181 def get_master_settings(self, mastername): 181 def get_master_settings(self, mastername):
182 return self._db[mastername]['master_dict'].get('settings', {}) 182 return self._db[mastername]['master_dict'].get('settings', {})
183 183
184 def bot_configs_matching_parent_buildername( 184 def bot_configs_matching_parent_buildername(
185 self, mastername, parent_buildername): 185 self, parent_mastername, parent_buildername):
186 """A generator of all the (buildername, bot_config) tuples whose 186 """A generator of all the (buildername, bot_config) tuples whose
187 parent_buildername is the passed one on the given master. 187 parent_buildername is the passed one on the given master.
188 """ 188 """
189 for buildername, bot_config in self._db[mastername]['master_dict'].get( 189 for mastername, master_config in self._db.iteritems():
190 'builders', {}).iteritems(): 190 master_dict = self._db[parent_mastername]['master_dict']
191 if bot_config.get('parent_buildername') == parent_buildername: 191 for buildername, bot_config in master_dict.get(
192 yield buildername, bot_config 192 'builders', {}).iteritems():
193 master_matches = (
194 bot_config.get('parent_master', mastername) == parent_mastername)
Paweł Hajdan Jr. 2016/04/29 18:49:26 Let's be consistent and use 'parent_mastername' (i
dtu 2016/04/30 02:51:07 Done.
195 builder_matches = (
196 bot_config.get('parent_buildername') == parent_buildername)
197 if master_matches and builder_matches:
198 yield mastername, buildername, bot_config
193 199
194 def get_test_spec(self, mastername, buildername): 200 def get_test_spec(self, mastername, buildername):
195 return self._db[mastername]['test_spec'].get(buildername, {}) 201 return self._db[mastername]['test_spec'].get(buildername, {})
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698