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

Side by Side Diff: build/android/pylib/host_driven/python_test_sharder.py

Issue 18915002: Kill forwarder2 host daemon in python_test_sharder.py during setup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 | 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 (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
11 from pylib.base import base_test_result 11 from pylib.base import base_test_result
12 from pylib.base import sharded_tests_queue 12 from pylib.base import sharded_tests_queue
13 from pylib.forwarder import Forwarder
13 14
14 from python_test_caller import CallPythonTest 15 from python_test_caller import CallPythonTest
15 16
16 17
17 def SetTestsContainer(tests_container): 18 def SetTestsContainer(tests_container):
18 """Sets PythonTestSharder as a top-level field. 19 """Sets PythonTestSharder as a top-level field.
19 20
20 PythonTestSharder uses multiprocessing.Pool, which creates a pool of 21 PythonTestSharder uses multiprocessing.Pool, which creates a pool of
21 processes. This is used to initialize each worker in the pool, ensuring that 22 processes. This is used to initialize each worker in the pool, ensuring that
22 each worker has access to this shared pool of tests. 23 each worker has access to this shared pool of tests.
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 A list of test results aggregated from all test runs. 114 A list of test results aggregated from all test runs.
114 """ 115 """
115 logging.warning('*' * 80) 116 logging.warning('*' * 80)
116 logging.warning('Sharding in ' + str(len(self.attached_devices)) + 117 logging.warning('Sharding in ' + str(len(self.attached_devices)) +
117 ' devices.') 118 ' devices.')
118 logging.warning('Note that the output is not synchronized.') 119 logging.warning('Note that the output is not synchronized.')
119 logging.warning('Look for the "Final result" banner in the end.') 120 logging.warning('Look for the "Final result" banner in the end.')
120 logging.warning('*' * 80) 121 logging.warning('*' * 80)
121 final_results = base_test_result.TestRunResults() 122 final_results = base_test_result.TestRunResults()
122 tests_to_run = self.tests 123 tests_to_run = self.tests
124
125 Forwarder.KillHost()
126
123 for retry in xrange(self.retries): 127 for retry in xrange(self.retries):
124 logging.warning('Try %d of %d', retry + 1, self.retries) 128 logging.warning('Try %d of %d', retry + 1, self.retries)
125 self._SetupSharding(self.tests) 129 self._SetupSharding(self.tests)
126 test_runners = self._MakeTestRunners(self.attached_devices) 130 test_runners = self._MakeTestRunners(self.attached_devices)
127 logging.warning('Starting...') 131 logging.warning('Starting...')
128 pool = multiprocessing.Pool(len(self.attached_devices), 132 pool = multiprocessing.Pool(len(self.attached_devices),
129 SetTestsContainer, 133 SetTestsContainer,
130 [PythonTestSharder.tests_container]) 134 [PythonTestSharder.tests_container])
131 135
132 # List of TestRunResults objects from each test execution. 136 # List of TestRunResults objects from each test execution.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 available_tests: a list of tests which subclass PythonTestBase. 194 available_tests: a list of tests which subclass PythonTestBase.
191 failed_test_names: a list of failed test names. 195 failed_test_names: a list of failed test names.
192 196
193 Returns: 197 Returns:
194 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
195 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.
196 """ 200 """
197 tests_to_retry = [t for t in available_tests 201 tests_to_retry = [t for t in available_tests
198 if t.qualified_name in failed_test_names] 202 if t.qualified_name in failed_test_names]
199 return tests_to_retry 203 return tests_to_retry
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