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

Side by Side Diff: build/android/pylib/gtest/setup.py

Issue 371343002: Revert "Android: Cleaned up python setup steps for gtests." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 fnmatch 8 import fnmatch
9 import glob 9 import glob
10 import logging 10 import logging
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 return '*' 212 return '*'
213 213
214 filters = [x for x in [x.strip() for x in file(filter_file_path).readlines()] 214 filters = [x for x in [x.strip() for x in file(filter_file_path).readlines()]
215 if x and x[0] != '#'] 215 if x and x[0] != '#']
216 disabled_filter = '*-%s' % ':'.join(filters) 216 disabled_filter = '*-%s' % ':'.join(filters)
217 logging.info('Applying filter "%s" obtained from %s', 217 logging.info('Applying filter "%s" obtained from %s',
218 disabled_filter, filter_file_path) 218 disabled_filter, filter_file_path)
219 return disabled_filter 219 return disabled_filter
220 220
221 221
222 # A helper class for scheduling setup-related tasks on devices.
223 class _TestSetupRunner(test_runner.TestRunner):
224 def SetUp(self):
225 pass
226
227 def TearDown(self):
228 pass
229
230 def DeviceSteps(self):
231 """ Steps to be run for device. Should be implemented in subclasses.
232
233 Returns:
234 A value that will be put into 'setup_result' field of corresponding
235 test result.
236 """
237 raise NotImplementedError()
238
239 def RunTest(self, _test):
240 result = base_test_result.BaseTestResult(
241 'dummy', base_test_result.ResultType.PASS)
242
243 result.setup_result = self.DeviceSteps()
244 results = base_test_result.TestRunResults()
245 results.AddResult(result)
246 return results, None
247
248
249 def _InstallPackage(test_options, test_package, devices):
250 def TestInstallerRunnerFactory(device, _shard_index):
251 class TestInstallerRunner(_TestSetupRunner):
252 def DeviceSteps(self):
253 self.test_package.Install(self.device)
254 return TestInstallerRunner(test_options, device, test_package)
255
256 test_dispatcher.RunTests(['setup'], TestInstallerRunnerFactory, devices,
257 shard=False)
258
259
260 def _GetTests(test_options, test_package, devices): 222 def _GetTests(test_options, test_package, devices):
261 """Get a list of tests. 223 """Get a list of tests.
262 224
263 Args: 225 Args:
264 test_options: A GTestOptions object. 226 test_options: A GTestOptions object.
265 test_package: A TestPackageApk object. 227 test_package: A TestPackageApk object.
266 devices: A list of attached devices. 228 devices: A list of attached devices.
267 229
268 Returns: 230 Returns:
269 A list of all the tests in the test suite. 231 A list of all the tests in the test suite.
270 """ 232 """
271 def TestListerRunnerFactory(device, _shard_index): 233 def TestListerRunnerFactory(device, _shard_index):
272 class TestListerRunner(_TestSetupRunner): 234 class TestListerRunner(test_runner.TestRunner):
273 def DeviceSteps(self): 235 def RunTest(self, _test):
274 return self.test_package.GetAllTests(self.device) 236 result = base_test_result.BaseTestResult(
237 'gtest_list_tests', base_test_result.ResultType.PASS)
238 self.test_package.Install(self.device)
239 result.test_list = self.test_package.GetAllTests(self.device)
240 results = base_test_result.TestRunResults()
241 results.AddResult(result)
242 return results, None
275 return TestListerRunner(test_options, device, test_package) 243 return TestListerRunner(test_options, device, test_package)
276 244
277 results, _no_retry = test_dispatcher.RunTests( 245 results, _no_retry = test_dispatcher.RunTests(
278 ['setup'], TestListerRunnerFactory, devices) 246 ['gtest_list_tests'], TestListerRunnerFactory, devices)
279 tests = [] 247 tests = []
280 for r in results.GetAll(): 248 for r in results.GetAll():
281 tests.extend(r.setup_result) 249 tests.extend(r.test_list)
282 return tests 250 return tests
283 251
284 252
285 def _FilterTestsUsingPrefixes(all_tests, pre=False, manual=False): 253 def _FilterTestsUsingPrefixes(all_tests, pre=False, manual=False):
286 """Removes tests with disabled prefixes. 254 """Removes tests with disabled prefixes.
287 255
288 Args: 256 Args:
289 all_tests: List of tests to filter. 257 all_tests: List of tests to filter.
290 pre: If True, include tests with PRE_ prefix. 258 pre: If True, include tests with PRE_ prefix.
291 manual: If True, include tests with MANUAL_ prefix. 259 manual: If True, include tests with MANUAL_ prefix.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 test_options.suite_name) 317 test_options.suite_name)
350 if not os.path.exists(test_package.suite_path): 318 if not os.path.exists(test_package.suite_path):
351 raise Exception( 319 raise Exception(
352 'Did not find %s target. Ensure it has been built.' 320 'Did not find %s target. Ensure it has been built.'
353 % test_options.suite_name) 321 % test_options.suite_name)
354 logging.warning('Found target %s', test_package.suite_path) 322 logging.warning('Found target %s', test_package.suite_path)
355 323
356 _GenerateDepsDirUsingIsolate(test_options.suite_name, 324 _GenerateDepsDirUsingIsolate(test_options.suite_name,
357 test_options.isolate_file_path) 325 test_options.isolate_file_path)
358 326
359 _InstallPackage(test_options, test_package, devices)
360 tests = _GetTests(test_options, test_package, devices) 327 tests = _GetTests(test_options, test_package, devices)
361 328
362 # Constructs a new TestRunner with the current options. 329 # Constructs a new TestRunner with the current options.
363 def TestRunnerFactory(device, _shard_index): 330 def TestRunnerFactory(device, _shard_index):
364 return test_runner.TestRunner( 331 return test_runner.TestRunner(
365 test_options, 332 test_options,
366 device, 333 device,
367 test_package) 334 test_package)
368 335
369 if test_options.run_disabled: 336 if test_options.run_disabled:
370 test_options = test_options._replace( 337 test_options = test_options._replace(
371 test_arguments=('%s --gtest_also_run_disabled_tests' % 338 test_arguments=('%s --gtest_also_run_disabled_tests' %
372 test_options.test_arguments)) 339 test_options.test_arguments))
373 else: 340 else:
374 tests = _FilterDisabledTests(tests, test_options.suite_name, 341 tests = _FilterDisabledTests(tests, test_options.suite_name,
375 bool(test_options.gtest_filter)) 342 bool(test_options.gtest_filter))
376 if test_options.gtest_filter: 343 if test_options.gtest_filter:
377 tests = unittest_util.FilterTestNames(tests, test_options.gtest_filter) 344 tests = unittest_util.FilterTestNames(tests, test_options.gtest_filter)
378 345
379 # Coalesce unit tests into a single test per device 346 # Coalesce unit tests into a single test per device
380 if test_options.suite_name != 'content_browsertests': 347 if test_options.suite_name != 'content_browsertests':
381 num_devices = len(devices) 348 num_devices = len(devices)
382 tests = [':'.join(tests[i::num_devices]) for i in xrange(num_devices)] 349 tests = [':'.join(tests[i::num_devices]) for i in xrange(num_devices)]
383 tests = [t for t in tests if t] 350 tests = [t for t in tests if t]
384 351
385 return (TestRunnerFactory, tests) 352 return (TestRunnerFactory, tests)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698