| OLD | NEW |
| 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 import logging | 5 import logging |
| 6 import os | 6 import os |
| 7 import re | 7 import re |
| 8 import tempfile |
| 8 | 9 |
| 9 from pylib import pexpect | 10 from pylib import pexpect |
| 10 from pylib import ports | 11 from pylib import ports |
| 11 from pylib.base import base_test_result | 12 from pylib.base import base_test_result |
| 12 from pylib.base import base_test_runner | 13 from pylib.base import base_test_runner |
| 13 from pylib.device import device_errors | 14 from pylib.device import device_errors |
| 14 from pylib.gtest import gtest_test_instance | 15 from pylib.gtest import gtest_test_instance |
| 15 from pylib.local import local_test_server_spawner | 16 from pylib.local import local_test_server_spawner |
| 16 from pylib.perf import perf_control | 17 from pylib.perf import perf_control |
| 17 | 18 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 if _TestSuiteRequiresHighPerfMode(self.test_package.suite_name): | 74 if _TestSuiteRequiresHighPerfMode(self.test_package.suite_name): |
| 74 self._perf_controller = perf_control.PerfControl(self.device) | 75 self._perf_controller = perf_control.PerfControl(self.device) |
| 75 | 76 |
| 76 if _TestSuiteRequiresMockTestServer(self.test_package.suite_name): | 77 if _TestSuiteRequiresMockTestServer(self.test_package.suite_name): |
| 77 self._servers = [ | 78 self._servers = [ |
| 78 local_test_server_spawner.LocalTestServerSpawner( | 79 local_test_server_spawner.LocalTestServerSpawner( |
| 79 ports.AllocateTestServerPort(), self.device, self.tool)] | 80 ports.AllocateTestServerPort(), self.device, self.tool)] |
| 80 else: | 81 else: |
| 81 self._servers = [] | 82 self._servers = [] |
| 82 | 83 |
| 84 if test_options.app_data_files: |
| 85 self._app_data_files = test_options.app_data_files |
| 86 if test_options.app_data_file_dir: |
| 87 self._app_data_file_dir = test_options.app_data_file_dir |
| 88 else: |
| 89 self._app_data_file_dir = tempfile.mkdtemp() |
| 90 logging.critical('Saving app files to %s', self._app_data_file_dir) |
| 91 else: |
| 92 self._app_data_files = None |
| 93 self._app_data_file_dir = None |
| 94 |
| 83 #override | 95 #override |
| 84 def InstallTestPackage(self): | 96 def InstallTestPackage(self): |
| 85 self.test_package.Install(self.device) | 97 self.test_package.Install(self.device) |
| 86 | 98 |
| 87 def _ParseTestOutput(self, p): | 99 def _ParseTestOutput(self, p): |
| 88 """Process the test output. | 100 """Process the test output. |
| 89 | 101 |
| 90 Args: | 102 Args: |
| 91 p: An instance of pexpect spawn class. | 103 p: An instance of pexpect spawn class. |
| 92 | 104 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 test_results = base_test_result.TestRunResults() | 172 test_results = base_test_result.TestRunResults() |
| 161 if not test: | 173 if not test: |
| 162 return test_results, None | 174 return test_results, None |
| 163 | 175 |
| 164 try: | 176 try: |
| 165 self.test_package.ClearApplicationState(self.device) | 177 self.test_package.ClearApplicationState(self.device) |
| 166 self.test_package.CreateCommandLineFileOnDevice( | 178 self.test_package.CreateCommandLineFileOnDevice( |
| 167 self.device, test, self._test_arguments) | 179 self.device, test, self._test_arguments) |
| 168 test_results = self._ParseTestOutput( | 180 test_results = self._ParseTestOutput( |
| 169 self.test_package.SpawnTestProcess(self.device)) | 181 self.test_package.SpawnTestProcess(self.device)) |
| 182 if self._app_data_files: |
| 183 self.test_package.PullAppFiles(self.device, self._app_data_files, |
| 184 self._app_data_file_dir) |
| 170 finally: | 185 finally: |
| 171 for s in self._servers: | 186 for s in self._servers: |
| 172 s.Reset() | 187 s.Reset() |
| 173 # Calculate unknown test results. | 188 # Calculate unknown test results. |
| 174 all_tests = set(test.split(':')) | 189 all_tests = set(test.split(':')) |
| 175 all_tests_ran = set([t.GetName() for t in test_results.GetAll()]) | 190 all_tests_ran = set([t.GetName() for t in test_results.GetAll()]) |
| 176 unknown_tests = all_tests - all_tests_ran | 191 unknown_tests = all_tests - all_tests_ran |
| 177 test_results.AddResults( | 192 test_results.AddResults( |
| 178 [base_test_result.BaseTestResult(t, base_test_result.ResultType.UNKNOWN) | 193 [base_test_result.BaseTestResult(t, base_test_result.ResultType.UNKNOWN) |
| 179 for t in unknown_tests]) | 194 for t in unknown_tests]) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 193 #override | 208 #override |
| 194 def TearDown(self): | 209 def TearDown(self): |
| 195 """Cleans up the test enviroment for the test suite.""" | 210 """Cleans up the test enviroment for the test suite.""" |
| 196 for s in self._servers: | 211 for s in self._servers: |
| 197 s.TearDown() | 212 s.TearDown() |
| 198 if _TestSuiteRequiresHighPerfMode(self.test_package.suite_name): | 213 if _TestSuiteRequiresHighPerfMode(self.test_package.suite_name): |
| 199 self._perf_controller.SetDefaultPerfMode() | 214 self._perf_controller.SetDefaultPerfMode() |
| 200 self.test_package.ClearApplicationState(self.device) | 215 self.test_package.ClearApplicationState(self.device) |
| 201 self.tool.CleanUpEnvironment() | 216 self.tool.CleanUpEnvironment() |
| 202 super(TestRunner, self).TearDown() | 217 super(TestRunner, self).TearDown() |
| OLD | NEW |