Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 61 | 61 |
| 62 test_spec_file = self.get('testing', {}).get( | 62 test_spec_file = self.get('testing', {}).get( |
| 63 'test_spec_file', '%s.json' % mastername) | 63 'test_spec_file', '%s.json' % mastername) |
| 64 | 64 |
| 65 # TODO(phajdan.jr): Bots should have no generators instead. | 65 # TODO(phajdan.jr): Bots should have no generators instead. |
| 66 if self.get('disable_tests'): | 66 if self.get('disable_tests'): |
| 67 return {} | 67 return {} |
| 68 return chromium_tests_api.read_test_spec(chromium_tests_api.m, test_spec_fil e) | 68 return chromium_tests_api.read_test_spec(chromium_tests_api.m, test_spec_fil e) |
| 69 | 69 |
| 70 def initialize_bot_db(self, chromium_tests_api, bot_db, bot_update_step): | 70 def initialize_bot_db(self, chromium_tests_api, bot_db, bot_update_step): |
| 71 # TODO(phajdan.jr): Bots should have no generators instead. | 71 # TODO(phajdan.jr): Bots should have no generators instead. |
|
ghost stip (do not use)
2016/09/22 23:25:48
should we remove this todo?
Paweł Hajdan Jr.
2016/09/23 01:14:54
Good point. I updated it.
| |
| 72 if self.get('disable_tests'): | 72 if self.get('disable_tests'): |
| 73 scripts_compile_targets = {} | 73 scripts_compile_targets = {} |
| 74 else: | 74 else: |
| 75 scripts_compile_targets = \ | 75 scripts_compile_targets = \ |
| 76 chromium_tests_api.get_compile_targets_for_scripts().json.output | 76 chromium_tests_api.get_compile_targets_for_scripts().json.output |
| 77 | 77 |
| 78 test_generators = [ | |
| 79 chromium_tests_api.steps.generate_gtest, | |
| 80 chromium_tests_api.steps.generate_instrumentation_test, | |
| 81 chromium_tests_api.steps.generate_junit_test, | |
| 82 chromium_tests_api.steps.generate_script, | |
| 83 chromium_tests_api.steps.generate_isolated_script, | |
| 84 ] | |
| 85 | |
| 78 masternames = set(bot_id['mastername'] for bot_id in self._bot_ids) | 86 masternames = set(bot_id['mastername'] for bot_id in self._bot_ids) |
| 79 for mastername in sorted(self._bots_dict): | 87 for mastername in sorted(self._bots_dict): |
| 80 # We manually thaw the path to the elements we are modifying, since the | 88 # We manually thaw the path to the elements we are modifying, since the |
| 81 # builders are frozen. | 89 # builders are frozen. |
| 82 master_dict = dict(self._bots_dict[mastername]) | 90 master_dict = dict(self._bots_dict[mastername]) |
| 83 | 91 |
| 84 if mastername in masternames: | 92 if mastername in masternames: |
| 85 test_spec = self._get_test_spec(chromium_tests_api, mastername) | 93 test_spec = self._get_test_spec(chromium_tests_api, mastername) |
| 86 | 94 |
| 87 builders = master_dict['builders'] = dict(master_dict['builders']) | 95 builders = master_dict['builders'] = dict(master_dict['builders']) |
| 88 for loop_buildername in builders: | 96 for loop_buildername in builders: |
| 89 builder_dict = builders[loop_buildername] = ( | 97 builder_dict = builders[loop_buildername] = ( |
| 90 dict(builders[loop_buildername])) | 98 dict(builders[loop_buildername])) |
| 91 builders[loop_buildername]['tests'] = ( | 99 builders[loop_buildername]['tests'] = ( |
| 92 chromium_tests_api.generate_tests_from_test_spec( | 100 chromium_tests_api.generate_tests_from_test_spec( |
| 93 chromium_tests_api.m, test_spec, builder_dict, | 101 chromium_tests_api.m, test_spec, builder_dict, |
| 94 loop_buildername, mastername, | 102 loop_buildername, mastername, |
| 95 # TODO(phajdan.jr): Get enable_swarming value from | 103 # TODO(phajdan.jr): Get enable_swarming value from |
| 96 # builder_dict. Above should remove the need to get | 104 # builder_dict. Above should remove the need to get |
| 97 # bot_config and buildername in this method. | 105 # bot_config and buildername in this method. |
| 98 self.get('enable_swarming', False), | 106 self.get('enable_swarming', False), |
| 99 builder_dict.get('swarming_dimensions', {}), | 107 builder_dict.get('swarming_dimensions', {}), |
| 100 scripts_compile_targets, | 108 scripts_compile_targets, |
| 101 builder_dict.get('test_generators', []), | 109 test_generators, |
| 102 bot_update_step | 110 bot_update_step |
| 103 )) | 111 )) |
| 104 else: | 112 else: |
| 105 test_spec = None | 113 test_spec = None |
| 106 | 114 |
| 107 | 115 |
| 108 bot_db._add_master_dict_and_test_spec( | 116 bot_db._add_master_dict_and_test_spec( |
| 109 mastername, freeze(master_dict), freeze(test_spec)) | 117 mastername, freeze(master_dict), freeze(test_spec)) |
| 110 | 118 |
| 111 def get_tests(self, bot_db): | 119 def get_tests(self, bot_db): |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 197 'builders', {}).iteritems(): | 205 'builders', {}).iteritems(): |
| 198 master_matches = (bot_config.get('parent_mastername', mastername) == | 206 master_matches = (bot_config.get('parent_mastername', mastername) == |
| 199 parent_mastername) | 207 parent_mastername) |
| 200 builder_matches = (bot_config.get('parent_buildername') == | 208 builder_matches = (bot_config.get('parent_buildername') == |
| 201 parent_buildername) | 209 parent_buildername) |
| 202 if master_matches and builder_matches: | 210 if master_matches and builder_matches: |
| 203 yield mastername, buildername, bot_config | 211 yield mastername, buildername, bot_config |
| 204 | 212 |
| 205 def get_test_spec(self, mastername, buildername): | 213 def get_test_spec(self, mastername, buildername): |
| 206 return self._db[mastername]['test_spec'].get(buildername, {}) | 214 return self._db[mastername]['test_spec'].get(buildername, {}) |
| OLD | NEW |