| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 """Takes care of sharding the python-drive tests in multiple devices.""" | 5 """Takes care of sharding the python-drive tests in multiple devices.""" |
| 6 | 6 |
| 7 import copy | 7 import copy |
| 8 import logging | 8 import logging |
| 9 import multiprocessing | 9 import multiprocessing |
| 10 | 10 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 """ | 115 """ |
| 116 logging.warning('*' * 80) | 116 logging.warning('*' * 80) |
| 117 logging.warning('Sharding in ' + str(len(self.attached_devices)) + | 117 logging.warning('Sharding in ' + str(len(self.attached_devices)) + |
| 118 ' devices.') | 118 ' devices.') |
| 119 logging.warning('Note that the output is not synchronized.') | 119 logging.warning('Note that the output is not synchronized.') |
| 120 logging.warning('Look for the "Final result" banner in the end.') | 120 logging.warning('Look for the "Final result" banner in the end.') |
| 121 logging.warning('*' * 80) | 121 logging.warning('*' * 80) |
| 122 final_results = base_test_result.TestRunResults() | 122 final_results = base_test_result.TestRunResults() |
| 123 tests_to_run = self.tests | 123 tests_to_run = self.tests |
| 124 | 124 |
| 125 Forwarder.KillHost() | 125 Forwarder.UseMultiprocessing() |
| 126 | 126 |
| 127 for retry in xrange(self.retries): | 127 for retry in xrange(self.retries): |
| 128 logging.warning('Try %d of %d', retry + 1, self.retries) | 128 logging.warning('Try %d of %d', retry + 1, self.retries) |
| 129 self._SetupSharding(self.tests) | 129 self._SetupSharding(self.tests) |
| 130 test_runners = self._MakeTestRunners(self.attached_devices) | 130 test_runners = self._MakeTestRunners(self.attached_devices) |
| 131 logging.warning('Starting...') | 131 logging.warning('Starting...') |
| 132 pool = multiprocessing.Pool(len(self.attached_devices), | 132 pool = multiprocessing.Pool(len(self.attached_devices), |
| 133 SetTestsContainer, | 133 SetTestsContainer, |
| 134 [PythonTestSharder.tests_container]) | 134 [PythonTestSharder.tests_container]) |
| 135 | 135 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 available_tests: a list of tests which subclass PythonTestBase. | 194 available_tests: a list of tests which subclass PythonTestBase. |
| 195 failed_test_names: a list of failed test names. | 195 failed_test_names: a list of failed test names. |
| 196 | 196 |
| 197 Returns: | 197 Returns: |
| 198 A list of test objects which correspond to test names found in | 198 A list of test objects which correspond to test names found in |
| 199 failed_test_names, or an empty list if there is no correspondence. | 199 failed_test_names, or an empty list if there is no correspondence. |
| 200 """ | 200 """ |
| 201 tests_to_retry = [t for t in available_tests | 201 tests_to_retry = [t for t in available_tests |
| 202 if t.qualified_name in failed_test_names] | 202 if t.qualified_name in failed_test_names] |
| 203 return tests_to_retry | 203 return tests_to_retry |
| OLD | NEW |