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

Side by Side Diff: build/android/pylib/uiautomator/dispatch.py

Issue 18770008: [Android] Redesigns the sharder to allow replicated vs distributed tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re-adds -f short form to gtest_filter switch Created 7 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
OLDNEW
(Empty)
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """Dispatches the uiautomator tests."""
6
7 import logging
8 import os
9
10 from pylib import android_commands
11 from pylib import constants
12 from pylib.base import base_test_result
13 from pylib.base import shard
14 from pylib.utils import report_results
15
16 import test_package
17 import test_runner
18
19
20 def Dispatch(options):
21 """Dispatches uiautomator tests onto connected device(s).
22
23 If possible, this method will attempt to shard the tests to
24 all connected devices. Otherwise, dispatch and run tests on one device.
25
26 Args:
27 options: Command line options.
28
29 Returns:
30 A tuple of (base_test_result.TestRunResults object, exit code)
31
32 Raises:
33 Exception: when there are no attached devices.
34 """
35 test_pkg = test_package.TestPackage(
36 options.uiautomator_jar, options.uiautomator_info_jar)
37 tests = test_pkg._GetAllMatchingTests(
38 options.annotations, options.exclude_annotations, options.test_filter)
39 if not tests:
40 logging.error('No uiautomator tests to run with current args.')
41 return (base_test_result.TestRunResults(), constants.ERROR_EXIT_CODE)
42
43 attached_devices = android_commands.GetAttachedDevices()
44 if not attached_devices:
45 raise Exception('There are no devices online.')
46
47 if options.test_device:
48 assert options.test_device in attached_devices
49 attached_devices = [options.test_device]
50
51 def TestRunnerFactory(device, shard_index):
52 return test_runner.TestRunner(
53 options, device, shard_index, test_pkg, [])
54
55 return shard.ShardAndRunTests(TestRunnerFactory, attached_devices,
56 tests, options.build_type,
57 num_retries=options.num_retries)
OLDNEW
« no previous file with comments | « build/android/pylib/instrumentation/test_runner.py ('k') | build/android/pylib/uiautomator/setup.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698