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 |