Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(483)

Side by Side Diff: slave/skia_slave_scripts/check_for_regressions.py

Issue 12785002: Split GenerateBenchGraphs into three build steps (Closed) Base URL: http://skia.googlecode.com/svn/buildbot/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
borenet 2013/03/12 12:15:38 SVN-copied from generate_bench_graphs.py.
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """ Generate performance graphs from bench output. """ 6 """ Check for regressions in bench data. """
7 7
8 from build_step import BuildStep 8 from build_step import BuildStep
9 from utils import bench_common
10 from utils import shell_utils 9 from utils import shell_utils
11 from utils import sync_bucket_subdir
12 10
13 import errno
14 import os 11 import os
15 import posixpath
16 import sys 12 import sys
17 13
18 14
19 class GenerateBenchGraphs(BuildStep): 15 class CheckForRegressions(BuildStep):
20 def __init__(self, timeout=600, no_output_timeout=600, **kwargs): 16 def __init__(self, timeout=600, no_output_timeout=600, **kwargs):
21 super(GenerateBenchGraphs, self).__init__( 17 super(CheckForRegressions, self).__init__(
22 timeout=timeout, 18 timeout=timeout,
23 no_output_timeout=no_output_timeout, 19 no_output_timeout=no_output_timeout,
24 **kwargs) 20 **kwargs)
25 21
26 def _RunInternal(self, representation): 22 def _RunInternal(self, representation):
27 try:
28 os.makedirs(self._perf_graphs_dir)
29 except OSError as e:
30 if e.errno == errno.EEXIST:
31 pass
32 else:
33 raise e
34 dest_gsbase = (self._args.get('dest_gsbase') or
35 sync_bucket_subdir.DEFAULT_PERFDATA_GS_BASE)
36
37 path_to_bench_graph_svg = os.path.join('bench', 'bench_graph_svg.py') 23 path_to_bench_graph_svg = os.path.join('bench', 'bench_graph_svg.py')
38 path_to_bench_expectations = os.path.join('bench', 24 path_to_bench_expectations = os.path.join('bench',
39 'bench_expectations.txt') 25 'bench_expectations.txt')
40 graph_title = 'Bench_Performance_for_%s' % self._builder_name 26 graph_title = 'Bench_Performance_for_%s' % self._builder_name
41 graph_filepath = bench_common.GraphFilePath(self._perf_graphs_dir,
42 self._builder_name,
43 representation)
44 sync_bucket_subdir.SyncBucketSubdir(directory=self._perf_data_dir,
45 dest_gsbase=dest_gsbase,
46 subdir=posixpath.join('perfdata', self._builder_name),
47 do_upload=False,
48 do_download=True,
49 min_download_revision=self._got_revision -
50 bench_common.BENCH_GRAPH_NUM_REVISIONS)
51
52 cmd = ['python', path_to_bench_graph_svg, 27 cmd = ['python', path_to_bench_graph_svg,
epoger 2013/03/12 15:58:33 Maybe add a comment like this? Run bench_graph_sv
53 '-d', self._perf_data_dir, 28 '-d', self._perf_data_dir,
54 '-e', path_to_bench_expectations, 29 '-e', path_to_bench_expectations,
55 '-r', '-%d' % bench_common.BENCH_GRAPH_NUM_REVISIONS, 30 '-r', '-1',
56 '-f', '-%d' % bench_common.BENCH_GRAPH_NUM_REVISIONS, 31 '-f', '-1',
57 '-x', '%d' % bench_common.BENCH_GRAPH_X,
58 '-y', '%d' % bench_common.BENCH_GRAPH_Y,
59 '-l', graph_title, 32 '-l', graph_title,
60 '-m', representation, 33 '-m', representation,
61 '-o', graph_filepath,
62 ] 34 ]
63 if self._builder_name.find('_Win') >= 0: 35 if self._builder_name.find('_Win') >= 0:
64 cmd.extend(['-i', 'c']) # Ignore cpu time for Windows. 36 cmd.extend(['-i', 'c']) # Ignore cpu time for Windows.
65 37
66 shell_utils.Bash(cmd) 38 shell_utils.Bash(cmd)
67 39
68 def _Run(self): 40 def _Run(self):
69 if self._perf_data_dir: 41 if self._perf_data_dir:
70 for rep in ['avg', 'min', 'med', '25th']: 42 for rep in ['avg', 'min', 'med', '25th']:
71 self._RunInternal(rep) 43 self._RunInternal(rep)
72 44
73 45
74 if '__main__' == __name__: 46 if '__main__' == __name__:
75 sys.exit(BuildStep.RunBuildStep(GenerateBenchGraphs)) 47 sys.exit(BuildStep.RunBuildStep(CheckForRegressions))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698