12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#!/usr/bin/env python 2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# Copyright 2013 The Chromium Authors. All rights reserved. 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# found in the LICENSE file. 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)"""Runs all ChromeDriver end to end tests.""" 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import optparse 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import os 10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)import platform 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)import shutil 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import sys 131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)import tempfile 145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)import traceback 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch_THIS_DIR = os.path.abspath(os.path.dirname(__file__)) 17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochsys.path.insert(0, os.path.join(_THIS_DIR, os.pardir)) 18ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)import archive 2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)import chrome_paths 2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)import util 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)sys.path.insert(0, os.path.join(chrome_paths.GetSrc(), 'build', 'android')) 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)from pylib import constants 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)def _GenerateTestCommand(script, 28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chromedriver, 29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ref_chromedriver=None, 30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome=None, 31868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome_version=None, 32424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) android_package=None, 33424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) verbose=False): 341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) _, log_path = tempfile.mkstemp(prefix='chromedriver_') 351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) print 'chromedriver server log: %s' % log_path 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) cmd = [ 37868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) sys.executable, 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) os.path.join(_THIS_DIR, script), 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) '--chromedriver=%s' % chromedriver, 401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) '--log-path=%s' % log_path, 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ] 42868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if ref_chromedriver: 43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) cmd.append('--reference-chromedriver=' + ref_chromedriver) 441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if chrome: 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) cmd.append('--chrome=' + chrome) 471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if chrome_version: 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cmd.append('--chrome-version=' + chrome_version) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 51424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) if verbose: 52424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) cmd.append('--verbose') 53424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if android_package: 551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) cmd = ['xvfb-run', '-a'] + cmd 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) cmd.append('--android-package=' + android_package) 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return cmd 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 60868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)def RunPythonTests(chromedriver, ref_chromedriver, 61868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome=None, chrome_version=None, 6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) chrome_version_name=None, android_package=None): 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) version_info = '' 6490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if chrome_version_name: 653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) version_info = '(%s)' % chrome_version_name 6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) util.MarkBuildStepStart('python_tests%s' % version_info) 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) code = util.RunCommand( 68868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) _GenerateTestCommand('run_py_tests.py', 69868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chromedriver, 70868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ref_chromedriver=ref_chromedriver, 71868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome=chrome, 72868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome_version=chrome_version, 73868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) android_package=android_package)) 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if code: 7590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) util.MarkBuildStepError() 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return code 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)def RunJavaTests(chromedriver, chrome=None, chrome_version=None, 80424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) chrome_version_name=None, android_package=None, 81424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) verbose=False): 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) version_info = '' 8390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if chrome_version_name: 843551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) version_info = '(%s)' % chrome_version_name 8590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) util.MarkBuildStepStart('java_tests%s' % version_info) 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) code = util.RunCommand( 87868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) _GenerateTestCommand('run_java_tests.py', 88868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chromedriver, 89868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ref_chromedriver=None, 90868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome=chrome, 91868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome_version=chrome_version, 92424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) android_package=android_package, 93424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) verbose=verbose)) 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if code: 9590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) util.MarkBuildStepError() 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return code 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)def RunCppTests(cpp_tests): 10068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) util.MarkBuildStepStart('chromedriver_tests') 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) code = util.RunCommand([cpp_tests]) 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if code: 10390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) util.MarkBuildStepError() 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return code 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochdef DownloadChrome(version_name, revision, download_site): 108eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch util.MarkBuildStepStart('download %s' % version_name) 1095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) try: 1105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) temp_dir = util.MakeTempDir() 1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return (temp_dir, archive.DownloadChrome(revision, temp_dir, download_site)) 1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) except Exception: 1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) traceback.print_exc() 1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) util.AddBuildStepText('Skip Java and Python tests') 1155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) util.MarkBuildStepError() 1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return (None, None) 1175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)def _KillChromes(): 1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) chrome_map = { 1215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'win': 'chrome.exe', 1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'mac': 'Chromium', 1235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'linux': 'chrome', 1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 1255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if util.IsWindows(): 1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) cmd = ['taskkill', '/F', '/IM'] 1275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) else: 1285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) cmd = ['killall', '-9'] 1295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) cmd.append(chrome_map[util.GetPlatformName()]) 1305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) util.RunCommand(cmd) 131eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 132eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)def main(): 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) parser = optparse.OptionParser() 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) parser.add_option( 1363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) '', '--android-packages', 1373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) help='Comma separated list of application package names, ' 1383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'if running tests on Android.') 139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) # Option 'chrome-version' is for desktop only. 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) parser.add_option( 141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) '', '--chrome-version', 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) help='Version of chrome, e.g., \'HEAD\', \'27\', or \'26\'.' 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'Default is to run tests against all of these versions.' 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'Notice: this option only applies to desktop.') 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) options, _ = parser.parse_args() 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 147868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) exe_postfix = '' 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if util.IsWindows(): 149868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) exe_postfix = '.exe' 15068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) cpp_tests_name = 'chromedriver_tests' + exe_postfix 15168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) server_name = 'chromedriver' + exe_postfix 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 153868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) required_build_outputs = [server_name] 1543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) if not options.android_packages: 155868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) required_build_outputs += [cpp_tests_name] 1565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) try: 1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) build_dir = chrome_paths.GetBuildDir(required_build_outputs) 1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) except RuntimeError: 1595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) util.MarkBuildStepStart('check required binaries') 1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) traceback.print_exc() 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) util.MarkBuildStepError() 16258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) constants.SetBuildType(os.path.basename(build_dir)) 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) print 'Using build outputs from', build_dir 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 165868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chromedriver = os.path.join(build_dir, server_name) 166868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) platform_name = util.GetPlatformName() 167868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if util.IsLinux() and platform.architecture()[0] == '64bit': 168868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) platform_name += '64' 169868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ref_chromedriver = os.path.join( 170868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome_paths.GetSrc(), 171868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'chrome', 'test', 'chromedriver', 'third_party', 'java_tests', 172868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'reference_builds', 173868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 'chromedriver_%s%s' % (platform_name, exe_postfix)) 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) if options.android_packages: 176ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch os.environ['PATH'] += os.pathsep + os.path.join( 177ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch _THIS_DIR, os.pardir, 'chrome') 1783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) code = 0 1793551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) for package in options.android_packages.split(','): 1803551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) code1 = RunPythonTests(chromedriver, 1813551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) ref_chromedriver, 1823551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) chrome_version_name=package, 1833551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) android_package=package) 1843551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) code2 = RunJavaTests(chromedriver, 1853551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) chrome_version_name=package, 186424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) android_package=package, 187424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) verbose=True) 1883551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) code = code or code1 or code2 1893551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) return code 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else: 191f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) latest_snapshot_revision = archive.GetLatestSnapshotVersion() 19290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) versions = [ 193f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ['HEAD', latest_snapshot_revision], 1941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ['37', archive.CHROME_37_REVISION], 195cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ['36', archive.CHROME_36_REVISION], 1961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ['35', archive.CHROME_35_REVISION] 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ] 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) code = 0 19990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) for version in versions: 20090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if options.chrome_version and version[0] != options.chrome_version: 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) continue 20290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) download_site = archive.Site.CONTINUOUS 20390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) version_name = version[0] 20490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if version_name == 'HEAD': 20590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) version_name = version[1] 206f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) download_site = archive.GetSnapshotDownloadSite() 2075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) temp_dir, chrome_path = DownloadChrome(version_name, version[1], 2085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) download_site) 2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if not chrome_path: 2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) code = 1 2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) continue 212868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) code1 = RunPythonTests(chromedriver, 213868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ref_chromedriver, 214868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome=chrome_path, 21590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) chrome_version=version[0], 2163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) chrome_version_name='v%s' % version_name) 217868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) code2 = RunJavaTests(chromedriver, chrome=chrome_path, 21890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) chrome_version=version[0], 2193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) chrome_version_name='v%s' % version_name) 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) code = code or code1 or code2 2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) _KillChromes() 2225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) shutil.rmtree(temp_dir) 22390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) cpp_tests = os.path.join(build_dir, cpp_tests_name) 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return RunCppTests(cpp_tests) or code 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)if __name__ == '__main__': 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) sys.exit(main()) 229