OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 """Generates test runner factory and tests for GTests.""" | 5 """Generates test runner factory and tests for GTests.""" |
6 # pylint: disable=W0212 | 6 # pylint: disable=W0212 |
7 | 7 |
8 import logging | 8 import logging |
9 import os | 9 import os |
10 import sys | 10 import sys |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 | 87 |
88 Returns: | 88 Returns: |
89 A list of all the tests in the test suite. | 89 A list of all the tests in the test suite. |
90 """ | 90 """ |
91 class TestListResult(base_test_result.BaseTestResult): | 91 class TestListResult(base_test_result.BaseTestResult): |
92 def __init__(self): | 92 def __init__(self): |
93 super(TestListResult, self).__init__( | 93 super(TestListResult, self).__init__( |
94 'gtest_list_tests', base_test_result.ResultType.PASS) | 94 'gtest_list_tests', base_test_result.ResultType.PASS) |
95 self.test_list = [] | 95 self.test_list = [] |
96 | 96 |
| 97 # pylint: disable=unused-argument |
97 def TestListerRunnerFactory(device, _shard_index): | 98 def TestListerRunnerFactory(device, _shard_index): |
98 class TestListerRunner(test_runner.TestRunner): | 99 class TestListerRunner(test_runner.TestRunner): |
99 def RunTest(self, _test): | 100 def RunTest(self, _test): |
100 result = TestListResult() | 101 result = TestListResult() |
101 self.test_package.Install(self.device) | 102 self.test_package.Install(self.device) |
102 result.test_list = self.test_package.GetAllTests(self.device) | 103 result.test_list = self.test_package.GetAllTests(self.device) |
103 results = base_test_result.TestRunResults() | 104 results = base_test_result.TestRunResults() |
104 results.AddResult(result) | 105 results.AddResult(result) |
105 return results, None | 106 return results, None |
106 return TestListerRunner(test_options, device, test_package) | 107 return TestListerRunner(test_options, device, test_package) |
107 | 108 |
108 results, _no_retry = test_dispatcher.RunTests( | 109 results, _ = test_dispatcher.RunTests( |
109 ['gtest_list_tests'], TestListerRunnerFactory, devices) | 110 ['gtest_list_tests'], TestListerRunnerFactory, devices) |
110 tests = [] | 111 tests = [] |
111 for r in results.GetAll(): | 112 for r in results.GetAll(): |
112 tests.extend(r.test_list) | 113 tests.extend(r.test_list) |
113 return tests | 114 return tests |
114 | 115 |
115 | 116 |
116 def _FilterTestsUsingPrefixes(all_tests, pre=False, manual=False): | 117 def _FilterTestsUsingPrefixes(all_tests, pre=False, manual=False): |
117 """Removes tests with disabled prefixes. | 118 """Removes tests with disabled prefixes. |
118 | 119 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 if test_package.suite_name == 'breakpad_unittests' | 198 if test_package.suite_name == 'breakpad_unittests' |
198 else device.GetExternalStoragePath()) | 199 else device.GetExternalStoragePath()) |
199 base_setup.PushDataDeps(device, device_dir, test_options) | 200 base_setup.PushDataDeps(device, device_dir, test_options) |
200 device_utils.DeviceUtils.parallel(devices).pMap(push_data_deps_to_device_dir) | 201 device_utils.DeviceUtils.parallel(devices).pMap(push_data_deps_to_device_dir) |
201 if i: | 202 if i: |
202 i.Clear() | 203 i.Clear() |
203 | 204 |
204 tests = _GetTests(test_options, test_package, devices) | 205 tests = _GetTests(test_options, test_package, devices) |
205 | 206 |
206 # Constructs a new TestRunner with the current options. | 207 # Constructs a new TestRunner with the current options. |
| 208 # pylint: disable=unused-argument |
207 def TestRunnerFactory(device, _shard_index): | 209 def TestRunnerFactory(device, _shard_index): |
208 return test_runner.TestRunner( | 210 return test_runner.TestRunner( |
209 test_options, | 211 test_options, |
210 device, | 212 device, |
211 test_package) | 213 test_package) |
212 | 214 |
213 if test_options.run_disabled: | 215 if test_options.run_disabled: |
214 test_options = test_options._replace( | 216 test_options = test_options._replace( |
215 test_arguments=('%s --gtest_also_run_disabled_tests' % | 217 test_arguments=('%s --gtest_also_run_disabled_tests' % |
216 test_options.test_arguments)) | 218 test_options.test_arguments)) |
217 else: | 219 else: |
218 tests = _FilterDisabledTests(tests, test_options.suite_name, | 220 tests = _FilterDisabledTests(tests, test_options.suite_name, |
219 bool(test_options.gtest_filter)) | 221 bool(test_options.gtest_filter)) |
220 if test_options.gtest_filter: | 222 if test_options.gtest_filter: |
221 tests = unittest_util.FilterTestNames(tests, test_options.gtest_filter) | 223 tests = unittest_util.FilterTestNames(tests, test_options.gtest_filter) |
222 | 224 |
223 # Coalesce unit tests into a single test per device | 225 # Coalesce unit tests into a single test per device |
224 if test_options.suite_name not in gtest_test_instance.BROWSER_TEST_SUITES: | 226 if test_options.suite_name not in gtest_test_instance.BROWSER_TEST_SUITES: |
225 num_devices = len(devices) | 227 num_devices = len(devices) |
226 tests = [':'.join(tests[i::num_devices]) for i in xrange(num_devices)] | 228 tests = [':'.join(tests[i::num_devices]) for i in xrange(num_devices)] |
227 tests = [t for t in tests if t] | 229 tests = [t for t in tests if t] |
228 | 230 |
229 return (TestRunnerFactory, tests) | 231 return (TestRunnerFactory, tests) |
OLD | NEW |