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 """Runs the Python tests (relies on using the Java test runner).""" | 5 """Runs the Python tests (relies on using the Java test runner).""" |
6 | 6 |
7 import logging | 7 import logging |
8 import os | 8 import os |
9 import sys | 9 import sys |
10 import types | 10 import types |
11 | 11 |
12 import android_commands | 12 import android_commands |
13 import apk_info | |
14 import constants | 13 import constants |
15 import python_test_base | 14 import python_test_base |
16 from python_test_caller import CallPythonTest | 15 from python_test_caller import CallPythonTest |
17 from python_test_sharder import PythonTestSharder | 16 from python_test_sharder import PythonTestSharder |
18 import run_java_tests | 17 import run_java_tests |
19 from run_java_tests import FatalTestException | 18 from run_java_tests import FatalTestException |
20 from test_info_collection import TestInfoCollection | 19 from test_info_collection import TestInfoCollection |
21 from test_result import TestResults | 20 from test_result import TestResults |
| 21 from utils import apk_and_jar_info |
22 | 22 |
23 | 23 |
24 def _GetPythonFiles(root, files): | 24 def _GetPythonFiles(root, files): |
25 """Returns all files from |files| that end in 'Test.py'. | 25 """Returns all files from |files| that end in 'Test.py'. |
26 | 26 |
27 Args: | 27 Args: |
28 root: A directory name with python files. | 28 root: A directory name with python files. |
29 files: A list of file names. | 29 files: A list of file names. |
30 | 30 |
31 Returns: | 31 Returns: |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 logging.warning('No Python tests to run with current args.') | 77 logging.warning('No Python tests to run with current args.') |
78 return TestResults() | 78 return TestResults() |
79 | 79 |
80 available_tests *= options.number_of_runs | 80 available_tests *= options.number_of_runs |
81 test_names = [t.qualified_name for t in available_tests] | 81 test_names = [t.qualified_name for t in available_tests] |
82 logging.debug('Final list of tests to run: ' + str(test_names)) | 82 logging.debug('Final list of tests to run: ' + str(test_names)) |
83 | 83 |
84 # Copy files to each device before running any tests. | 84 # Copy files to each device before running any tests. |
85 for device_id in attached_devices: | 85 for device_id in attached_devices: |
86 logging.debug('Pushing files to device %s', device_id) | 86 logging.debug('Pushing files to device %s', device_id) |
87 apks = [apk_info.ApkInfo(options.test_apk_path, options.test_apk_jar_path)] | 87 apks = [apk_and_jar_info.ApkAndJarInfo(options.test_apk_path, |
| 88 options.test_apk_jar_path)] |
88 test_files_copier = run_java_tests.TestRunner(options, device_id, | 89 test_files_copier = run_java_tests.TestRunner(options, device_id, |
89 None, False, 0, apks, []) | 90 None, False, 0, apks, []) |
90 test_files_copier.CopyTestFilesOnce() | 91 test_files_copier.CopyTestFilesOnce() |
91 | 92 |
92 # Actually run the tests. | 93 # Actually run the tests. |
93 if len(attached_devices) > 1 and options.wait_for_debugger: | 94 if len(attached_devices) > 1 and options.wait_for_debugger: |
94 logging.warning('Debugger can not be sharded, ' | 95 logging.warning('Debugger can not be sharded, ' |
95 'using first available device') | 96 'using first available device') |
96 attached_devices = attached_devices[:1] | 97 attached_devices = attached_devices[:1] |
97 logging.debug('Running Python tests') | 98 logging.debug('Running Python tests') |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 Returns: | 199 Returns: |
199 List of test case objects for all available test methods. | 200 List of test case objects for all available test methods. |
200 """ | 201 """ |
201 if not test_root: | 202 if not test_root: |
202 return [] | 203 return [] |
203 all_tests = [] | 204 all_tests = [] |
204 test_module_list = _GetTestModules(test_root, is_official_build) | 205 test_module_list = _GetTestModules(test_root, is_official_build) |
205 for module in test_module_list: | 206 for module in test_module_list: |
206 all_tests.extend(_GetTestClassesFromModule(module)) | 207 all_tests.extend(_GetTestClassesFromModule(module)) |
207 return all_tests | 208 return all_tests |
OLD | NEW |