| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 from recipe_engine import recipe_api | 5 from recipe_engine import recipe_api |
| 6 | 6 |
| 7 GS_CHROMEDRIVER_DATA_BUCKET = 'chromedriver-data' | 7 GS_CHROMEDRIVER_DATA_BUCKET = 'chromedriver-data' |
| 8 GS_PREBUILTS_URL = GS_CHROMEDRIVER_DATA_BUCKET + '/prebuilts' | 8 GS_PREBUILTS_URL = GS_CHROMEDRIVER_DATA_BUCKET + '/prebuilts' |
| 9 GS_SERVER_LOGS_URL = GS_CHROMEDRIVER_DATA_BUCKET + '/server_logs' | 9 GS_SERVER_LOGS_URL = GS_CHROMEDRIVER_DATA_BUCKET + '/server_logs' |
| 10 | 10 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 del log[min(log.keys())] | 113 del log[min(log.keys())] |
| 114 if commit_position not in log: | 114 if commit_position not in log: |
| 115 log[commit_position] = bool(passed) | 115 log[commit_position] = bool(passed) |
| 116 self.upload_test_results_log(chromedriver_platform, log) | 116 self.upload_test_results_log(chromedriver_platform, log) |
| 117 else: | 117 else: |
| 118 raise self.m.step.StepFailure( | 118 raise self.m.step.StepFailure( |
| 119 'Results already exist for commit position %s' % commit_position) | 119 'Results already exist for commit position %s' % commit_position) |
| 120 | 120 |
| 121 def _generate_test_command(self, script, chromedriver, log_path, | 121 def _generate_test_command(self, script, chromedriver, log_path, |
| 122 ref_chromedriver=None, android_package=None, | 122 ref_chromedriver=None, android_package=None, |
| 123 build_type=None, verbose=None): | 123 verbose=None): |
| 124 cmd = [ | 124 cmd = [ |
| 125 script, | 125 script, |
| 126 '--chromedriver', chromedriver, | 126 '--chromedriver', chromedriver, |
| 127 '--log-path', str(log_path) | 127 '--log-path', str(log_path) |
| 128 ] | 128 ] |
| 129 if ref_chromedriver: | 129 if ref_chromedriver: |
| 130 cmd.extend(['--reference-chromedriver', ref_chromedriver]) | 130 cmd.extend(['--reference-chromedriver', ref_chromedriver]) |
| 131 if build_type: | |
| 132 cmd.extend(['--build-type', build_type]) | |
| 133 if verbose: | 131 if verbose: |
| 134 cmd.extend(['--verbose']) | 132 cmd.extend(['--verbose']) |
| 135 if self.m.platform.is_linux: | 133 if self.m.platform.is_linux: |
| 136 cmd = ['xvfb-run', '-a'] + cmd | 134 cmd = ['xvfb-run', '-a'] + cmd |
| 137 if android_package: | 135 if android_package: |
| 138 cmd.extend(['--android-package', android_package]) | 136 cmd.extend(['--android-package', android_package]) |
| 139 return cmd | 137 return cmd |
| 140 | 138 |
| 141 def run_python_tests(self, chromedriver, ref_chromedriver, chrome=None, | 139 def run_python_tests(self, chromedriver, ref_chromedriver, chrome=None, |
| 142 chrome_version_name=None, android_package=None, | 140 chrome_version_name=None, android_package=None, |
| 143 build_type=None, archive_server_log=True, **kwargs): | 141 archive_server_log=True, **kwargs): |
| 144 """Run the Chromedriver Python tests.""" | 142 """Run the Chromedriver Python tests.""" |
| 145 version_info = '' | 143 version_info = '' |
| 146 if chrome_version_name: | 144 if chrome_version_name: |
| 147 version_info = '(%s)' % chrome_version_name | 145 version_info = '(%s)' % chrome_version_name |
| 148 with self.m.tempfile.temp_dir('server_log') as log_dir: | 146 with self.m.tempfile.temp_dir('server_log') as log_dir: |
| 149 server_log = log_dir.join('server_log') | 147 server_log = log_dir.join('server_log') |
| 150 test_script_path = self.m.path['checkout'].join( | 148 test_script_path = self.m.path['checkout'].join( |
| 151 'chrome', 'test', 'chromedriver', 'test', 'run_py_tests.py') | 149 'chrome', 'test', 'chromedriver', 'test', 'run_py_tests.py') |
| 152 self.m.step('python_tests%s' % version_info, | 150 self.m.step('python_tests%s' % version_info, |
| 153 self._generate_test_command( | 151 self._generate_test_command( |
| 154 test_script_path, chromedriver, server_log, | 152 test_script_path, chromedriver, server_log, |
| 155 ref_chromedriver=ref_chromedriver, | 153 ref_chromedriver=ref_chromedriver, |
| 156 android_package=android_package, | 154 android_package=android_package), |
| 157 build_type=build_type), | |
| 158 **kwargs) | 155 **kwargs) |
| 159 if archive_server_log: | 156 if archive_server_log: |
| 160 self.archive_server_log(server_log) | 157 self.archive_server_log(server_log) |
| 161 | 158 |
| 162 def run_java_tests(self, chromedriver, chrome=None, chrome_version_name=None, | 159 def run_java_tests(self, chromedriver, chrome=None, chrome_version_name=None, |
| 163 android_package=None, build_type=None, verbose=False, | 160 android_package=None, verbose=False, |
| 164 archive_server_log=True, **kwargs): | 161 archive_server_log=True, **kwargs): |
| 165 """Run the Chromedriver Java tests.""" | 162 """Run the Chromedriver Java tests.""" |
| 166 version_info = '' | 163 version_info = '' |
| 167 if chrome_version_name: | 164 if chrome_version_name: |
| 168 version_info = '(%s)' % chrome_version_name | 165 version_info = '(%s)' % chrome_version_name |
| 169 with self.m.tempfile.temp_dir('server_log') as log_dir: | 166 with self.m.tempfile.temp_dir('server_log') as log_dir: |
| 170 server_log = log_dir.join('server_log') | 167 server_log = log_dir.join('server_log') |
| 171 test_script_path = self.m.path['checkout'].join( | 168 test_script_path = self.m.path['checkout'].join( |
| 172 'chrome', 'test', 'chromedriver', 'test', 'run_java_tests.py') | 169 'chrome', 'test', 'chromedriver', 'test', 'run_java_tests.py') |
| 173 self.m.step('java_tests%s' % version_info, | 170 self.m.step('java_tests%s' % version_info, |
| 174 self._generate_test_command( | 171 self._generate_test_command( |
| 175 test_script_path, chromedriver, server_log, | 172 test_script_path, chromedriver, server_log, |
| 176 ref_chromedriver=None, android_package=android_package, | 173 ref_chromedriver=None, android_package=android_package, |
| 177 build_type=build_type, verbose=verbose), | 174 verbose=verbose), |
| 178 **kwargs) | 175 **kwargs) |
| 179 if archive_server_log: | 176 if archive_server_log: |
| 180 self.archive_server_log(server_log) | 177 self.archive_server_log(server_log) |
| 181 | 178 |
| 182 def run_all_tests(self, android_packages=None, archive_server_logs=True): | 179 def run_all_tests(self, android_packages=None, archive_server_logs=True): |
| 183 """Run all Chromedriver tests.""" | 180 """Run all Chromedriver tests.""" |
| 184 server_name = 'chromedriver' | 181 server_name = 'chromedriver' |
| 185 chromedriver = self.m.chromium.output_dir.join(server_name) | 182 chromedriver = self.m.chromium.output_dir.join(server_name) |
| 186 build_type = self.m.path.basename(self.m.chromium.output_dir) | |
| 187 | 183 |
| 188 platform_name = self.m.platform.name | 184 platform_name = self.m.platform.name |
| 189 if self.m.platform.is_linux and self.m.platform.bits == 64: | 185 if self.m.platform.is_linux and self.m.platform.bits == 64: |
| 190 platform_name = 'linux64' | 186 platform_name = 'linux64' |
| 191 ref_chromedriver = self.m.path['checkout'].join( | 187 ref_chromedriver = self.m.path['checkout'].join( |
| 192 'chrome', 'test', 'chromedriver', 'third_party', 'java_tests', | 188 'chrome', 'test', 'chromedriver', 'third_party', 'java_tests', |
| 193 'reference_builds', 'chromedriver_%s' % platform_name) | 189 'reference_builds', 'chromedriver_%s' % platform_name) |
| 194 | 190 |
| 195 test_env = {'PATH': '%(PATH)s'} | 191 test_env = {'PATH': '%(PATH)s'} |
| 196 test_env['PATH'] = self.m.path.pathsep.join([ | 192 test_env['PATH'] = self.m.path.pathsep.join([ |
| 197 test_env['PATH'], | 193 test_env['PATH'], |
| 198 str(self.m.path['checkout'].join( | 194 str(self.m.path['checkout'].join( |
| 199 'chrome', 'test', 'chromedriver', 'chrome'))]) | 195 'chrome', 'test', 'chromedriver', 'chrome'))]) |
| 200 with self.m.step.defer_results(): | 196 with self.m.step.defer_results(): |
| 201 for package in android_packages or []: | 197 for package in android_packages or []: |
| 202 self.run_python_tests(chromedriver, | 198 self.run_python_tests(chromedriver, |
| 203 ref_chromedriver, | 199 ref_chromedriver, |
| 204 chrome_version_name=package, | 200 chrome_version_name=package, |
| 205 android_package=package, | 201 android_package=package, |
| 206 build_type=build_type, | |
| 207 env=test_env, | 202 env=test_env, |
| 208 archive_server_log=archive_server_logs) | 203 archive_server_log=archive_server_logs) |
| 209 self.run_java_tests(chromedriver, | 204 self.run_java_tests(chromedriver, |
| 210 chrome_version_name=package, | 205 chrome_version_name=package, |
| 211 android_package=package, | 206 android_package=package, |
| 212 build_type=build_type, | |
| 213 verbose=True, | 207 verbose=True, |
| 214 env=test_env, | 208 env=test_env, |
| 215 archive_server_log=archive_server_logs) | 209 archive_server_log=archive_server_logs) |
| OLD | NEW |