Index: build/android/pylib/python_test_sharder.py |
diff --git a/build/android/pylib/python_test_sharder.py b/build/android/pylib/python_test_sharder.py |
index 7bab235a8ba48ea595c11dc0371b17b084230c06..e27096d788de922a52b6d15d5b9701670b19a9ec 100644 |
--- a/build/android/pylib/python_test_sharder.py |
+++ b/build/android/pylib/python_test_sharder.py |
@@ -4,6 +4,7 @@ |
"""Takes care of sharding the python-drive tests in multiple devices.""" |
+import copy |
import logging |
import multiprocessing |
@@ -50,15 +51,13 @@ class PythonTestRunner(object): |
DEFAULT_PORT + shard_index) if the test so wishes. |
""" |
- def __init__(self, device_id, shard_index): |
+ def __init__(self, options): |
"""Constructor. |
Args: |
- device_id: ID of the device which this test will talk to. |
- shard_index: shard index, used to create such as unique port numbers. |
+ options: Options to use for setting up tests. |
""" |
- self.device_id = device_id |
- self.shard_index = shard_index |
+ self.options = options |
def RunTests(self): |
"""Runs tests from the shared pool of tests, aggregating results. |
@@ -70,7 +69,7 @@ class PythonTestRunner(object): |
results = [] |
for t in tests: |
- res = CallPythonTest(t, self.device_id, self.shard_index) |
+ res = CallPythonTest(t, self.options) |
results.append(res) |
return TestResults.FromTestResults(results) |
@@ -86,17 +85,18 @@ class PythonTestSharder(object): |
Args: |
attached_devices: a list of device IDs attached to the host. |
- shard_retries: number of retries for any given test. |
available_tests: a list of tests to run which subclass PythonTestBase. |
+ options: Options to use for setting up tests. |
Returns: |
An aggregated list of test results. |
""" |
tests_container = None |
- def __init__(self, attached_devices, shard_retries, available_tests): |
+ def __init__(self, attached_devices, available_tests, options): |
+ self.options = options |
self.attached_devices = attached_devices |
- self.retries = shard_retries |
+ self.retries = options.shard_retries |
self.tests = available_tests |
def _SetupSharding(self, tests): |
@@ -178,7 +178,10 @@ class PythonTestSharder(object): |
logging.warning('*' * 80) |
# Bind the PythonTestRunner to a device & shard index. Give it the |
# runnable which it will use to actually execute the tests. |
- test_runner = PythonTestRunner(device, index) |
+ test_options = copy.deepcopy(self.options) |
+ test_options.ensure_value('device_id', device) |
+ test_options.ensure_value('shard_index', index) |
+ test_runner = PythonTestRunner(test_options) |
test_runners.append(test_runner) |
return test_runners |