| Index: slave/skia_slave_scripts/check_compile_times.py
|
| diff --git a/slave/skia_slave_scripts/check_compile_times.py b/slave/skia_slave_scripts/check_compile_times.py
|
| deleted file mode 100644
|
| index 2cb0a84609953d8596f2701eebf63ca96d31efb1..0000000000000000000000000000000000000000
|
| --- a/slave/skia_slave_scripts/check_compile_times.py
|
| +++ /dev/null
|
| @@ -1,106 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -
|
| -""" Verify that the most recent compile builds are under an appropriate
|
| -threshold. """
|
| -
|
| -
|
| -from build_step import BuildStep, BuildStepFailure
|
| -from builder_name_schema import BUILDER_ROLE_BUILD
|
| -import config_private
|
| -import json
|
| -import sys
|
| -import urllib2
|
| -
|
| -
|
| -BUILD_MASTER_URL = 'http://%s:%s' % (
|
| - config_private.Master.Skia.master_host,
|
| - config_private.Master.Skia.master_port_alt)
|
| -COMPILE_TIME_LIMIT = 10000 # TODO(borenet): Make this something reasonable!
|
| -
|
| -
|
| -def IsBuildFinished(build_info):
|
| - """ Determine whether the given build is finished, based on its start and end
|
| - times. Returns True iff the start and end times are not None and are not zero.
|
| - """
|
| - return build_info['times'][0] and build_info['times'][1]
|
| -
|
| -
|
| -def GetBuildInfo(builder_name, build_num):
|
| - """ Returns a dictionary containing information about a given build.
|
| -
|
| - builder_name: string; the name of the desired builder.
|
| - build_num: string; the number of the desired build.
|
| - """
|
| - url = '%s/json/builders/%s/builds/%s' % (BUILD_MASTER_URL,
|
| - builder_name,
|
| - build_num)
|
| - return json.load(urllib2.urlopen(url))
|
| -
|
| -
|
| -def GetLastFinishedBuildInfo(builder_name, cached_builds):
|
| - """ Returns a dictionary containing information about the last finished build
|
| - for the given builder.
|
| -
|
| - builder_name: string; the name of the desired builder.
|
| - cached_builds: list of strings; candidate build numbers.
|
| - """
|
| - cached_builds.sort(reverse=True)
|
| - for build_num in cached_builds:
|
| - build_info = GetBuildInfo(builder_name, build_num)
|
| - if IsBuildFinished(build_info):
|
| - return build_info
|
| - return None
|
| -
|
| -
|
| -class CheckCompileTimes(BuildStep):
|
| - def _Run(self):
|
| - # Obtain the list of Compile builders from the master.
|
| - builders = json.load(urllib2.urlopen(BUILD_MASTER_URL + '/json/builders'))
|
| -
|
| - # Figure out which ones are too slow.
|
| - too_slow = []
|
| - no_builds = []
|
| - longest_build = None
|
| - for builder_name in builders.keys():
|
| - if builder_name.startswith(BUILDER_ROLE_BUILD):
|
| - cached_builds = sorted(builders[builder_name]['cachedBuilds'])
|
| - if cached_builds:
|
| - build_info = GetLastFinishedBuildInfo(builder_name, cached_builds)
|
| - if build_info:
|
| - duration = build_info['times'][1] - build_info['times'][0]
|
| - summarized_build_info = {'builder': builder_name,
|
| - 'number': build_info['number'],
|
| - 'duration': duration}
|
| - if duration > COMPILE_TIME_LIMIT:
|
| - too_slow.append(summarized_build_info)
|
| - if not longest_build or duration > longest_build['duration']:
|
| - longest_build = summarized_build_info
|
| - else:
|
| - no_builds.append(builder_name)
|
| - if longest_build:
|
| - print 'Longest build: %(builder)s #%(number)s: %(duration)ds' % \
|
| - longest_build
|
| - print '%s/builders/%s/builds/%s' % (BUILD_MASTER_URL,
|
| - longest_build['builder'],
|
| - longest_build['number'])
|
| - print
|
| - if no_builds:
|
| - print 'Warning: No builds found for the following builders:'
|
| - for builder in no_builds:
|
| - print ' %s' % builder
|
| - print
|
| - if too_slow:
|
| - print 'The following builds exceeded the time limit of %ds:' % \
|
| - COMPILE_TIME_LIMIT
|
| - for summarized_build_info in too_slow:
|
| - print ' %(builder)s #%(number)s: %(duration)ds' % summarized_build_info
|
| - raise BuildStepFailure('Builds exceeded time limit.')
|
| -
|
| -
|
| -
|
| -if '__main__' == __name__:
|
| - sys.exit(BuildStep.RunBuildStep(CheckCompileTimes))
|
|
|