blob: 8ec4d5fe1a90c1ab90b8bc7c2faa168a1f6ff607 [file]
#!/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.
"""Run the Skia benchmarking executable."""
import os
import sys
from build_step import BuildStep
GIT = 'git.bat' if os.name == 'nt' else 'git'
GIT_SVN_ID_MATCH_STR = r'git-svn-id: http://skia.googlecode.com/svn/trunk@(\d+)'
def BenchArgs(data_file):
"""Builds a list containing arguments to pass to bench.
Args:
data_file: filepath to store the log output
Returns:
list containing arguments to pass to bench
"""
return ['--timers', 'wcg', '--logFile', data_file]
# Device name -> extra arguments
EXTRA_ARGS = {
'GalaxyNexus': ['--match', '~DeferredSurfaceCopy'], # Crash: skbug.com/1687
'Nexus4': ['--config', 'defaults', 'MSAA4'],
'NexusS': ['--match', '~DeferredSurfaceCopy'], # Crash: skbug.com/1687
}
class RunBench(BuildStep):
"""A BuildStep that runs bench."""
def __init__(self, timeout=9600, no_output_timeout=9600, **kwargs):
super(RunBench, self).__init__(timeout=timeout,
no_output_timeout=no_output_timeout,
**kwargs)
def _BuildDataFile(self):
return os.path.join(self._device_dirs.PerfDir(),
'bench_%s_data' % self._got_revision)
def _Run(self):
args = ['-i', self._device_dirs.ResourceDir()]
if self._perf_data_dir:
args.extend(BenchArgs(self._BuildDataFile()))
for device in EXTRA_ARGS:
if device in self._builder_name:
args.extend(EXTRA_ARGS[device])
self._flavor_utils.RunFlavoredCmd('bench', args + self._bench_args)
if '__main__' == __name__:
sys.exit(BuildStep.RunBuildStep(RunBench))