示例#1
0
def _WaitForLatestSnapshot(revision):
    util.MarkBuildStepStart('wait_for_snapshot')
    while True:
        snapshot_revision = archive.GetLatestSnapshotVersion()
        if int(snapshot_revision) >= int(revision):
            break
        util.PrintAndFlush('Waiting for snapshot >= %s, found %s' %
                           (revision, snapshot_revision))
        time.sleep(60)
    util.PrintAndFlush('Got snapshot revision %s' % snapshot_revision)
示例#2
0
def _WaitForLatestSnapshot(commit_position):
    util.MarkBuildStepStart('wait_for_snapshot')
    while True:
        snapshot_position = archive.GetLatestSnapshotVersion()
        if commit_position is not None and snapshot_position is not None:
            if int(snapshot_position) >= int(commit_position):
                break
            util.PrintAndFlush('Waiting for snapshot >= %s, found %s' %
                               (commit_position, snapshot_position))
        time.sleep(60)
    util.PrintAndFlush('Got snapshot commit position %s' % snapshot_position)
def _WaitForLatestSnapshot(revision):
  util.MarkBuildStepStart('wait_for_snapshot')
  def _IsRevisionNumber(revision):
    if isinstance(revision, int):
      return True
    else:
      return revision.isdigit()
  while True:
    snapshot_revision = archive.GetLatestSnapshotVersion()
    if not _IsRevisionNumber(revision):
      revision = _GetSVNRevisionFromGitHash(revision)
    if not _IsRevisionNumber(snapshot_revision):
      snapshot_revision = _GetSVNRevisionFromGitHash(snapshot_revision)
    if revision is not None and snapshot_revision is not None:
      if int(snapshot_revision) >= int(revision):
        break
      util.PrintAndFlush('Waiting for snapshot >= %s, found %s' %
                         (revision, snapshot_revision))
    time.sleep(60)
  util.PrintAndFlush('Got snapshot revision %s' % snapshot_revision)
示例#4
0
def main():
    parser = optparse.OptionParser()
    parser.add_option(
        '',
        '--android-packages',
        help='Comma separated list of application package names, '
        'if running tests on Android.')
    # Option 'chrome-version' is for desktop only.
    parser.add_option(
        '',
        '--chrome-version',
        help='Version of chrome, e.g., \'HEAD\', \'27\', or \'26\'.'
        'Default is to run tests against all of these versions.'
        'Notice: this option only applies to desktop.')
    options, _ = parser.parse_args()

    exe_postfix = ''
    if util.IsWindows():
        exe_postfix = '.exe'
    cpp_tests_name = 'chromedriver_tests' + exe_postfix
    server_name = 'chromedriver' + exe_postfix

    required_build_outputs = [server_name]
    if not options.android_packages:
        required_build_outputs += [cpp_tests_name]
    try:
        build_dir = chrome_paths.GetBuildDir(required_build_outputs)
    except RuntimeError:
        util.MarkBuildStepStart('check required binaries')
        traceback.print_exc()
        util.MarkBuildStepError()
    constants.SetBuildType(os.path.basename(build_dir))
    print 'Using build outputs from', build_dir

    chromedriver = os.path.join(build_dir, server_name)
    platform_name = util.GetPlatformName()
    if util.IsLinux() and platform.architecture()[0] == '64bit':
        platform_name += '64'
    ref_chromedriver = os.path.join(
        chrome_paths.GetSrc(), 'chrome', 'test', 'chromedriver', 'third_party',
        'java_tests', 'reference_builds',
        'chromedriver_%s%s' % (platform_name, exe_postfix))

    if options.android_packages:
        os.environ['PATH'] += os.pathsep + os.path.join(
            _THIS_DIR, os.pardir, 'chrome')
        code = 0
        for package in options.android_packages.split(','):
            code1 = RunPythonTests(chromedriver,
                                   ref_chromedriver,
                                   chrome_version_name=package,
                                   android_package=package)
            code2 = RunJavaTests(chromedriver,
                                 chrome_version_name=package,
                                 android_package=package,
                                 verbose=True)
            code = code or code1 or code2
        return code
    else:
        latest_snapshot_revision = archive.GetLatestSnapshotVersion()
        versions = [
            ['HEAD', latest_snapshot_revision],
            ['49', archive.CHROME_49_REVISION],
            ['48', archive.CHROME_48_REVISION],
            ['47', archive.CHROME_47_REVISION],
        ]
        code = 0
        for version in versions:
            if options.chrome_version and version[0] != options.chrome_version:
                continue
            download_site = archive.Site.CONTINUOUS
            version_name = version[0]
            if version_name == 'HEAD':
                version_name = version[1]
                download_site = archive.GetSnapshotDownloadSite()
            temp_dir, chrome_path = DownloadChrome(version_name, version[1],
                                                   download_site)
            if not chrome_path:
                code = 1
                continue
            code1 = RunPythonTests(chromedriver,
                                   ref_chromedriver,
                                   chrome=chrome_path,
                                   chrome_version=version[0],
                                   chrome_version_name='v%s' % version_name)
            code2 = RunJavaTests(chromedriver,
                                 chrome=chrome_path,
                                 chrome_version=version[0],
                                 chrome_version_name='v%s' % version_name)
            code = code or code1 or code2
            _KillChromes()
            shutil.rmtree(temp_dir)
        cpp_tests = os.path.join(build_dir, cpp_tests_name)
        return RunCppTests(cpp_tests) or code