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

Unified Diff: slave/skia_slave_scripts/render_skps.py

Issue 295753002: upload SKP renderings that did not match expectations (Closed) Base URL: https://skia.googlesource.com/buildbot.git@master
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: slave/skia_slave_scripts/render_skps.py
diff --git a/slave/skia_slave_scripts/render_skps.py b/slave/skia_slave_scripts/render_skps.py
index 650c6fccdebb910aeceb1afc2e61cdacdd8ac804..39a1372ab6fe8fe2bb744e45bda022886116507f 100644
--- a/slave/skia_slave_scripts/render_skps.py
+++ b/slave/skia_slave_scripts/render_skps.py
@@ -5,68 +5,91 @@
""" Run the Skia render_pictures executable. """
-from build_step import BuildStep
+from build_step import BuildStep, BuildStepWarning
import os
import sys
DEFAULT_TILE_X = 256
DEFAULT_TILE_Y = 256
-JSON_SUMMARY_BASENAME = 'renderskp-'
+JSON_SUMMARY_FILENAME_FORMATTER = 'renderskp-%s.json'
class RenderSKPs(BuildStep):
+
def __init__(self, timeout=9600, no_output_timeout=9600, **kwargs):
super(RenderSKPs, self).__init__(
timeout=timeout, no_output_timeout=no_output_timeout, **kwargs)
- def DoRenderSKPs(self, args, config='8888', write_images=True,
- json_summary_filename=None):
+
+ def DoRenderSKPs(self, args, description, config='8888', write_images=True):
"""Run render_pictures.
Args:
args: (list of strings) misc args to append to the command line
+ description: (string) description of this RenderSKPs run; used as part
+ of the JSON summary filename
config: (string) which config to run in
write_images: (boolean) whether to save the generated images (IGNORED)
- json_summary_filename: (string) name of file to write summary of actually-
- generated images into
+
+ Raises:
+ BuildStepWarning if there was a problem, but the step should keep going.
+ Something else if there was a major problem and we should give up now.
"""
# For now, don't run on Android, since it takes too long and we don't use
# the results.
if 'Android' in self._builder_name:
return
- cmd = ['-r', self._device_dirs.SKPDir(), '--config', config,
- '--mode', 'tile', str(DEFAULT_TILE_X), str(DEFAULT_TILE_Y)]
- if json_summary_filename:
- cmd.extend(['--writeJsonSummaryPath', os.path.join(
- self._device_dirs.SKPOutDir(), json_summary_filename)])
+ json_summary_filename = JSON_SUMMARY_FILENAME_FORMATTER % description
+ json_expectations_devicepath = self._flavor_utils.DevicePathJoin(
+ self._device_dirs.PlaybackExpectedSummariesDir(), json_summary_filename)
+ if not self._flavor_utils.DevicePathExists(json_expectations_devicepath):
+ raise BuildStepWarning('could not find JSON expectations file %s' %
+ json_expectations_devicepath)
+
+ cmd = [
+ '--config', config,
+ '--mode', 'tile', str(DEFAULT_TILE_X), str(DEFAULT_TILE_Y),
+ '--readJsonSummaryPath', json_expectations_devicepath,
+ '--readPath', self._device_dirs.SKPDir(),
+ '--writeChecksumBasedFilenames',
+ '--writeJsonSummaryPath', self._flavor_utils.DevicePathJoin(
+ self._device_dirs.PlaybackActualSummariesDir(),
+ json_summary_filename),
+ ]
+ if write_images:
+ cmd.extend([
+ '--mismatchPath', self._device_dirs.PlaybackActualImagesDir()])
cmd.extend(args)
if False:
- # For now, skip --validate and writing images on all builders, since they
- # take too long and we aren't making use of them.
- # Also skip --validate on Windows, where it is currently failing.
- if write_images:
- cmd.extend(['-w', self._device_dirs.SKPOutDir()])
+ # For now, skip --validate on all builders, since it takes more time,
+ # and at last check failed on Windows.
if not os.name == 'nt':
cmd.append('--validate')
+
self._flavor_utils.RunFlavoredCmd('render_pictures', cmd)
+
def _Run(self):
- self.DoRenderSKPs(
- args=[],
- json_summary_filename=JSON_SUMMARY_BASENAME + 'defaults.json')
- self.DoRenderSKPs(
- args=['--bbh', 'grid', str(DEFAULT_TILE_X), str(DEFAULT_TILE_X),
- '--clone', '1'],
- json_summary_filename=JSON_SUMMARY_BASENAME + 'grid.json')
- self.DoRenderSKPs(
- args=['--bbh', 'rtree', '--clone', '2'],
- json_summary_filename=JSON_SUMMARY_BASENAME + 'rtree.json')
- self.DoRenderSKPs(
- args=['--deferImageDecoding', '--useVolatileCache'],
- json_summary_filename=JSON_SUMMARY_BASENAME + 'deferImageDecoding.json')
+ configs = {
+ 'defaults': [],
+ 'deferImageDecoding': ['--deferImageDecoding', '--useVolatileCache'],
+ 'grid': ['--bbh', 'grid', str(DEFAULT_TILE_X), str(DEFAULT_TILE_X),
+ '--clone', '1'],
+ 'rtree': ['--bbh', 'rtree', '--clone', '2'],
+ }
borenet 2014/05/19 21:04:38 It's possible that these belong in a config file i
epoger 2014/05/19 22:07:24 Yeah, maybe, I'm not sure. And maybe we should ev
+ exceptions = []
+ for description, args in sorted(configs.iteritems()):
+ try:
+ self.DoRenderSKPs(args=args, description=description)
+ except BuildStepWarning, e:
+ exceptions.append(e)
+ print e
+ if exceptions:
+ raise BuildStepWarning('\nGot %d exceptions:\n%s' % (
+ len(exceptions), '\n'.join([repr(e) for e in exceptions])))
if '__main__' == __name__:

Powered by Google App Engine
This is Rietveld 408576698