Index: build/android/pylib/gtest/test_runner.py |
diff --git a/build/android/pylib/gtest/test_runner.py b/build/android/pylib/gtest/test_runner.py |
index a48f18a70f669cc27aae4d62f9f577c7081807ae..57bd30111a6437c2f67fa0b11adaef13420b6d8a 100644 |
--- a/build/android/pylib/gtest/test_runner.py |
+++ b/build/android/pylib/gtest/test_runner.py |
@@ -32,6 +32,12 @@ RE_CRASH = re.compile('\\[ CRASHED \\](.*)\r\n') |
# hard cap. |
_INFRA_STDOUT_TIMEOUT = 20 * 60 |
+def _TestSuiteRunsInSubThread(suite_name): |
+ """Returns True if the test suite needs to run in a sub-thread""" |
+ # net_unittests create an Android service that needs to receive Java main |
+ # thread events while the tests are running, so run the tests in a sub-thread. |
+ tests_run_in_sub_thread = ['net_unittests'] |
+ return (suite_name in tests_run_in_sub_thread) |
def _TestSuiteRequiresMockTestServer(suite_name): |
"""Returns True if the test suite requires mock test server.""" |
@@ -178,7 +184,9 @@ class TestRunner(base_test_runner.BaseTestRunner): |
self.test_package.CreateCommandLineFileOnDevice( |
self.device, test, self._test_arguments) |
test_results = self._ParseTestOutput( |
- self.test_package.SpawnTestProcess(self.device)) |
+ self.test_package.SpawnTestProcess( |
+ self.device, |
+ _TestSuiteRunsInSubThread(self.test_package.suite_name))) |
if self._app_data_files: |
self.test_package.PullAppFiles(self.device, self._app_data_files, |
self._app_data_file_dir) |