예제 #1
0
def CreateCoverageFileAndUpload(options):
    """Create coverage file with bbcov2lcov binary and upload to www dir."""
    # Assert log files exist
    log_files = glob.glob(os.path.join(options.dynamorio_log_dir, '*.log'))
    if not log_files:
        print 'No coverage log files found.'
        return 1

    if (options.browser_shard_index
            and options.test_to_upload in options.sharded_tests):
        coverage_info = os.path.join(
            options.build_dir,
            'coverage_%s.info' % options.browser_shard_index)
    else:
        coverage_info = os.path.join(options.build_dir, COVERAGE_INFO)
    coverage_info = os.path.normpath(coverage_info)
    if os.path.isfile(coverage_info):
        os.remove(coverage_info)

    bbcov2lcov_binary = GetExecutableName(
        os.path.join(options.dynamorio_dir, 'tools', 'bin32', 'bbcov2lcov'))
    cmd = [
        bbcov2lcov_binary, '--dir', options.dynamorio_log_dir, '--output',
        coverage_info
    ]
    RunCmd(cmd)

    # Delete log files.
    log_files = glob.glob(os.path.join(options.dynamorio_log_dir, '*.log'))
    for log_file in log_files:
        os.remove(log_file)

    # Assert coverage.info file exist
    if not os.path.isfile(coverage_info):
        print 'Failed to create coverage.info file.'
        return 1

    # Upload coverage file.
    cov_dir = options.test_to_upload.replace('_', '') + COVERAGE_DIR_POSTFIX
    dest = os.path.join(options.www_dir, options.platform, options.build_id,
                        cov_dir)
    dest = os.path.normpath(dest)
    if chromium_utils.IsWindows():
        print('chromium_utils.CopyFileToDir(%s, %s)' % (coverage_info, dest))
        chromium_utils.MaybeMakeDirectory(dest)
        chromium_utils.CopyFileToDir(coverage_info, dest)
    elif chromium_utils.IsLinux() or chromium_utils.IsMac():
        print 'SshCopyFiles(%s, %s, %s)' % (coverage_info, options.host, dest)
        chromium_utils.SshMakeDirectory(options.host, dest)
        chromium_utils.MakeWorldReadable(coverage_info)
        chromium_utils.SshCopyFiles(coverage_info, options.host, dest)
        os.unlink(coverage_info)
    else:
        raise NotImplementedError('Platform "%s" is not currently supported.' %
                                  sys.platform)
    return 0
예제 #2
0
def UploadFile(src, dst, force_ssh=False):
    www_base = config.Archive.www_dir_base
    full_dst = os.path.join(www_base, dst)
    dst_dir = os.path.dirname(full_dst)
    if chromium_utils.IsWindows() and not force_ssh:
        print 'copying (%s) to (%s)' % (src, full_dst)
        chromium_utils.MaybeMakeDirectory(dst_dir)
        shutil.copyfile(src, full_dst)
        print 'done.'
    else:
        host = config.Archive.archive_host
        print 'copying (%s) to (%s) on (%s)' % (src, full_dst, host)
        chromium_utils.SshMakeDirectory(host, dst_dir)
        chromium_utils.SshCopyFiles(src, host, full_dst)
        print 'done.'
예제 #3
0
def MaybeMakeDirectoryOnArchiveHost(dest_dir):
  """A wrapper method to create a directory on the archive host.
  It calls MaybeMakeDirectory on Windows and SshMakeDirectory on Linux/Mac.

  Args:
      dest_dir: destination directory on the host.
  """
  host = config.Archive.archive_host
  if chromium_utils.IsWindows():
    chromium_utils.MaybeMakeDirectory(dest_dir)
    print 'saving results to %s' % dest_dir
  elif chromium_utils.IsLinux() or chromium_utils.IsMac():
    chromium_utils.SshMakeDirectory(host, dest_dir)
    print 'saving results to "%s" on "%s"' % (dest_dir, host)
  else:
    raise NotImplementedError(
        'Platform "%s" is not currently supported.' % sys.platform)
 def MySshMakeDirectory(self, host, destination, gs_base):
     if not gs_base or self._dual_upload:
         chromium_utils.SshMakeDirectory(host, destination)
예제 #5
0
파일: v8archive.py 프로젝트: kusoof/wprof
    # Only keep the last 15 number (that means we could have 30 due to _old files
    # if someone forced a respin of every single one)
    trim_build_list = build_list[:-15]
    for x in trim_build_list:
        prune_name = zip_template.replace('.zip', '_%d.zip' % x)
        print 'Pruning build %d' % x
        chromium_utils.RemoveFile(stage_dir, prune_name)
        chromium_utils.RemoveFile(stage_dir,
                                  prune_name.replace('.zip', '_old.zip'))

    www_dir = config.Archive.www_dir_base + 'v8_archive/' + build_version
    archive_host = 'master3.golo.chromium.org'
    print 'SshMakeDirectory(%s, %s)' % (archive_host, www_dir)
    print 'SshCopyFiles(%s, %s, %s)' % (versioned_file, archive_host, www_dir)

    chromium_utils.SshMakeDirectory(archive_host, www_dir)
    MakeWorldReadable(versioned_file)
    chromium_utils.SshCopyFiles(versioned_file, archive_host, www_dir)
    #  os.unlink(versioned_file)
    # Files are created umask 077 by default, so make it world-readable
    # before pushing to web server.
    return 0


if '__main__' == __name__:
    option_parser = optparse.OptionParser()

    option_parser.add_option('',
                             '--target',
                             default='Release',
                             help='build target to archive (Debug or Release)')