| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 """Generates test runner factory and tests for instrumentation tests.""" | 5 """Generates test runner factory and tests for instrumentation tests.""" |
| 6 | 6 |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 | 9 |
| 10 from devil.android import device_utils | 10 from devil.android import device_utils |
| 11 from pylib import constants | |
| 12 from pylib import valgrind_tools | 11 from pylib import valgrind_tools |
| 13 from pylib.base import base_setup | 12 from pylib.base import base_setup |
| 13 from pylib.constants import host_paths |
| 14 from pylib.instrumentation import test_package | 14 from pylib.instrumentation import test_package |
| 15 from pylib.instrumentation import test_runner | 15 from pylib.instrumentation import test_runner |
| 16 | 16 |
| 17 DEVICE_DATA_DIR = 'chrome/test/data' | 17 DEVICE_DATA_DIR = 'chrome/test/data' |
| 18 | 18 |
| 19 ISOLATE_FILE_PATHS = { | 19 ISOLATE_FILE_PATHS = { |
| 20 'AndroidWebViewTest': 'android_webview/android_webview_test_apk.isolate', | 20 'AndroidWebViewTest': 'android_webview/android_webview_test_apk.isolate', |
| 21 'ContentShellTest': 'content/content_shell_test_apk.isolate', | 21 'ContentShellTest': 'content/content_shell_test_apk.isolate', |
| 22 } | 22 } |
| 23 | 23 |
| 24 DEPS_EXCLUSION_LIST = [] | 24 DEPS_EXCLUSION_LIST = [] |
| 25 | 25 |
| 26 # TODO(mikecase): Remove this function and the constant DEVICE_DATA_DIR | 26 # TODO(mikecase): Remove this function and the constant DEVICE_DATA_DIR |
| 27 # once all data deps are pushed to the same location on the device. | 27 # once all data deps are pushed to the same location on the device. |
| 28 def _PushExtraSuiteDataDeps(device, test_apk): | 28 def _PushExtraSuiteDataDeps(device, test_apk): |
| 29 """Pushes some extra data files/dirs needed by some test suite. | 29 """Pushes some extra data files/dirs needed by some test suite. |
| 30 | 30 |
| 31 Args: | 31 Args: |
| 32 test_apk: The test suite basename for which to return file paths. | 32 test_apk: The test suite basename for which to return file paths. |
| 33 """ | 33 """ |
| 34 if test_apk in ['ChromeTest', 'ContentShellTest', | 34 if test_apk in ['ChromeTest', 'ContentShellTest', |
| 35 'CronetTestInstrumentation']: | 35 'CronetTestInstrumentation']: |
| 36 test_files = 'net/data/ssl/certificates' | 36 test_files = 'net/data/ssl/certificates' |
| 37 host_device_file_tuple = [ | 37 host_device_file_tuple = [ |
| 38 (os.path.join(constants.DIR_SOURCE_ROOT, test_files), | 38 (os.path.join(host_paths.DIR_SOURCE_ROOT, test_files), |
| 39 os.path.join(device.GetExternalStoragePath(), test_files))] | 39 os.path.join(device.GetExternalStoragePath(), test_files))] |
| 40 device.PushChangedFiles(host_device_file_tuple) | 40 device.PushChangedFiles(host_device_file_tuple) |
| 41 | 41 |
| 42 | 42 |
| 43 # TODO(mikecase): Remove this function once everything uses | 43 # TODO(mikecase): Remove this function once everything uses |
| 44 # base_setup.PushDataDeps to push data deps to the device. | 44 # base_setup.PushDataDeps to push data deps to the device. |
| 45 def _PushDataDeps(device, test_options): | 45 def _PushDataDeps(device, test_options): |
| 46 valgrind_tools.PushFilesForTool(test_options.tool, device) | 46 valgrind_tools.PushFilesForTool(test_options.tool, device) |
| 47 | 47 |
| 48 host_device_file_tuples = [] | 48 host_device_file_tuples = [] |
| 49 for dest_host_pair in test_options.test_data: | 49 for dest_host_pair in test_options.test_data: |
| 50 dst_src = dest_host_pair.split(':', 1) | 50 dst_src = dest_host_pair.split(':', 1) |
| 51 dst_layer = dst_src[0] | 51 dst_layer = dst_src[0] |
| 52 host_src = dst_src[1] | 52 host_src = dst_src[1] |
| 53 host_test_files_path = os.path.join(constants.DIR_SOURCE_ROOT, host_src) | 53 host_test_files_path = os.path.join(host_paths.DIR_SOURCE_ROOT, host_src) |
| 54 if os.path.exists(host_test_files_path): | 54 if os.path.exists(host_test_files_path): |
| 55 host_device_file_tuples += [( | 55 host_device_file_tuples += [( |
| 56 host_test_files_path, | 56 host_test_files_path, |
| 57 '%s/%s/%s' % ( | 57 '%s/%s/%s' % ( |
| 58 device.GetExternalStoragePath(), | 58 device.GetExternalStoragePath(), |
| 59 DEVICE_DATA_DIR, | 59 DEVICE_DATA_DIR, |
| 60 dst_layer))] | 60 dst_layer))] |
| 61 if host_device_file_tuples: | 61 if host_device_file_tuples: |
| 62 device.PushChangedFiles(host_device_file_tuples) | 62 device.PushChangedFiles(host_device_file_tuples) |
| 63 | 63 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 isolator.Clear() | 106 isolator.Clear() |
| 107 | 107 |
| 108 device_utils.DeviceUtils.parallel(devices).pMap( | 108 device_utils.DeviceUtils.parallel(devices).pMap( |
| 109 _PushExtraSuiteDataDeps, test_options.test_apk) | 109 _PushExtraSuiteDataDeps, test_options.test_apk) |
| 110 | 110 |
| 111 def TestRunnerFactory(device, shard_index): | 111 def TestRunnerFactory(device, shard_index): |
| 112 return test_runner.TestRunner(test_options, device, shard_index, | 112 return test_runner.TestRunner(test_options, device, shard_index, |
| 113 test_pkg) | 113 test_pkg) |
| 114 | 114 |
| 115 return (TestRunnerFactory, tests) | 115 return (TestRunnerFactory, tests) |
| OLD | NEW |