| 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 glob | 5 import glob |
| 6 import logging | 6 import logging |
| 7 import os | 7 import os |
| 8 import sys | 8 import sys |
| 9 | 9 |
| 10 from pylib import android_commands | 10 from pylib import android_commands |
| 11 from pylib import constants | 11 from pylib import constants |
| 12 from pylib import perf_tests_helper | 12 from pylib import perf_tests_helper |
| 13 from pylib.android_commands import errors | 13 from pylib.android_commands import errors |
| 14 from pylib.base_test_runner import BaseTestRunner | 14 from pylib.base_test_runner import BaseTestRunner |
| 15 from pylib.test_result import BaseTestResult, TestResults | 15 from pylib.test_result import BaseTestResult, TestResults |
| 16 from pylib.utils import run_tests_helper | 16 from pylib.utils import run_tests_helper |
| 17 | 17 |
| 18 import debug_info | 18 import debug_info |
| 19 from test_package_apk import TestPackageApk | 19 from test_package_apk import TestPackageApk |
| 20 from test_package_executable import TestPackageExecutable | 20 from test_package_executable import TestPackageExecutable |
| 21 | 21 |
| 22 | 22 |
| 23 CURFILE_PATH = os.path.abspath(os.path.dirname(__file__)) |
| 24 |
| 25 |
| 23 class SingleTestRunner(BaseTestRunner): | 26 class SingleTestRunner(BaseTestRunner): |
| 24 """Single test suite attached to a single device. | 27 """Single test suite attached to a single device. |
| 25 | 28 |
| 26 Args: | 29 Args: |
| 27 device: Device to run the tests. | 30 device: Device to run the tests. |
| 28 test_suite: A specific test suite to run, empty to run all. | 31 test_suite: A specific test suite to run, empty to run all. |
| 29 gtest_filter: A gtest_filter flag. | 32 gtest_filter: A gtest_filter flag. |
| 30 test_arguments: Additional arguments to pass to the test binary. | 33 test_arguments: Additional arguments to pass to the test binary. |
| 31 timeout: Timeout for each test. | 34 timeout: Timeout for each test. |
| 32 cleanup_test_files: Whether or not to cleanup test files on device. | 35 cleanup_test_files: Whether or not to cleanup test files on device. |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 self.dump_debug_info, | 80 self.dump_debug_info, |
| 78 symbols_dir) | 81 symbols_dir) |
| 79 | 82 |
| 80 def _TestSuiteRequiresMockTestServer(self): | 83 def _TestSuiteRequiresMockTestServer(self): |
| 81 """Returns True if the test suite requires mock test server.""" | 84 """Returns True if the test suite requires mock test server.""" |
| 82 tests_require_net_test_server = ['unit_tests', 'net_unittests', | 85 tests_require_net_test_server = ['unit_tests', 'net_unittests', |
| 83 'content_unittests'] | 86 'content_unittests'] |
| 84 return (self.test_package.test_suite_basename in | 87 return (self.test_package.test_suite_basename in |
| 85 tests_require_net_test_server) | 88 tests_require_net_test_server) |
| 86 | 89 |
| 87 def _GetFilterFileName(self): | |
| 88 """Returns the filename of gtest filter.""" | |
| 89 return os.path.join( | |
| 90 sys.path[0], 'gtest_filter', | |
| 91 self.test_package.test_suite_basename + '_disabled') | |
| 92 | |
| 93 def _GetAdditionalEmulatorFilterName(self): | |
| 94 """Returns the filename of additional gtest filter for emulator.""" | |
| 95 return os.path.join( | |
| 96 sys.path[0], 'gtest_filter', | |
| 97 self.test_package.test_suite_basename + | |
| 98 '_emulator_additional_disabled') | |
| 99 | |
| 100 def GetDisabledTests(self): | 90 def GetDisabledTests(self): |
| 101 """Returns a list of disabled tests. | 91 """Returns a list of disabled tests. |
| 102 | 92 |
| 103 Returns: | 93 Returns: |
| 104 A list of disabled tests obtained from gtest_filter/test_suite_disabled. | 94 A list of disabled tests obtained from 'filter' subdirectory. |
| 105 """ | 95 """ |
| 106 disabled_tests = run_tests_helper.GetExpectations(self._GetFilterFileName()) | 96 gtest_filter_base_path = os.path.join( |
| 97 CURFILE_PATH, 'filter', self.test_package.test_suite_basename) |
| 98 disabled_tests = run_tests_helper.GetExpectations( |
| 99 gtest_filter_base_path + '_disabled') |
| 107 if self._running_on_emulator: | 100 if self._running_on_emulator: |
| 108 # Append emulator's filter file. | 101 # Append emulator's filter file. |
| 109 disabled_tests.extend(run_tests_helper.GetExpectations( | 102 disabled_tests.extend(run_tests_helper.GetExpectations( |
| 110 self._GetAdditionalEmulatorFilterName())) | 103 gtest_filter_base_path + '_emulator_additional_disabled')) |
| 111 return disabled_tests | 104 return disabled_tests |
| 112 | 105 |
| 113 def GetDataFilesForTestSuite(self): | 106 def GetDataFilesForTestSuite(self): |
| 114 """Returns a list of data files/dirs needed by the test suite.""" | 107 """Returns a list of data files/dirs needed by the test suite.""" |
| 115 # Ideally, we'd just push all test data. However, it has >100MB, and a lot | 108 # Ideally, we'd just push all test data. However, it has >100MB, and a lot |
| 116 # of the files are not relevant (some are used for browser_tests, others for | 109 # of the files are not relevant (some are used for browser_tests, others for |
| 117 # features not supported, etc..). | 110 # features not supported, etc..). |
| 118 if self.test_package.test_suite_basename in ['base_unittests', | 111 if self.test_package.test_suite_basename in ['base_unittests', |
| 119 'sql_unittests', | 112 'sql_unittests', |
| 120 'unit_tests']: | 113 'unit_tests']: |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 def TearDown(self): | 276 def TearDown(self): |
| 284 """Cleans up the test enviroment for the test suite.""" | 277 """Cleans up the test enviroment for the test suite.""" |
| 285 self.tool.CleanUpEnvironment() | 278 self.tool.CleanUpEnvironment() |
| 286 if self.test_package.cleanup_test_files: | 279 if self.test_package.cleanup_test_files: |
| 287 self.adb.RemovePushedFiles() | 280 self.adb.RemovePushedFiles() |
| 288 if self.dump_debug_info: | 281 if self.dump_debug_info: |
| 289 self.dump_debug_info.StopRecordingLog() | 282 self.dump_debug_info.StopRecordingLog() |
| 290 if self.dump_debug_info: | 283 if self.dump_debug_info: |
| 291 self.dump_debug_info.ArchiveNewCrashFiles() | 284 self.dump_debug_info.ArchiveNewCrashFiles() |
| 292 super(SingleTestRunner, self).TearDown() | 285 super(SingleTestRunner, self).TearDown() |
| OLD | NEW |