| # Copyright 2016 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. |
| |
| |
| # Recipe module for Skia Swarming calmbench. |
| |
| DEPS = [ |
| 'flavor', |
| 'recipe_engine/context', |
| 'recipe_engine/file', |
| 'recipe_engine/path', |
| 'recipe_engine/properties', |
| 'recipe_engine/python', |
| 'recipe_engine/raw_io', |
| 'recipe_engine/step', |
| 'recipe_engine/time', |
| 'run', |
| 'vars', |
| ] |
| |
| def RunSteps(api): |
| api.vars.setup() |
| api.file.ensure_directory('makedirs tmp_dir', api.vars.tmp_dir) |
| api.flavor.setup() |
| |
| api.flavor.install(skps=True, svgs=True) |
| api.file.ensure_directory('makedirs perf', api.vars.swarming_out_dir) |
| |
| skia_dir = api.path['start_dir'].join('skia') |
| with api.context(cwd=skia_dir): |
| extra_arg = '--svgs %s --skps %s' % (api.flavor.device_dirs.svg_dir, |
| api.flavor.device_dirs.skp_dir) |
| |
| # measuring multi-picture-draw in our multi-threaded CPU test is inaccurate |
| if api.vars.builder_cfg.get('cpu_or_gpu') == 'CPU': |
| extra_arg += ' --mpd false' |
| config = "8888" |
| else: |
| config = "gl" |
| |
| command = [ |
| 'python', |
| skia_dir.join('tools', 'calmbench', 'ab.py'), |
| api.vars.swarming_out_dir, |
| 'modified', 'master', |
| api.vars.build_dir.join('nanobench'), |
| api.vars.build_dir.join('ParentRevision', 'nanobench'), |
| extra_arg, extra_arg, |
| 2, # reps |
| "false", # skipbase |
| config, |
| -1, # threads; let ab.py decide the threads |
| "false", # noinit |
| "--githash", api.properties['revision'], |
| "--concise" |
| ] |
| |
| keys_blacklist = ['configuration', 'role', 'test_filter'] |
| command.append('--keys') |
| for k in sorted(api.vars.builder_cfg.keys()): |
| if not k in keys_blacklist: |
| command.extend([k, api.vars.builder_cfg[k]]) |
| |
| api.run(api.step, 'Run calmbench', cmd=command) |
| api.run.check_failure() |
| |
| def GenTests(api): |
| builders = [ |
| "Calmbench-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All", |
| "Calmbench-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Release-All", |
| ] |
| |
| for builder in builders: |
| test = ( |
| api.test(builder) + |
| api.properties(buildername=builder, |
| repository='https://skia.googlesource.com/skia.git', |
| revision='abc123', |
| path_config='kitchen', |
| swarm_out_dir='[SWARM_OUT_DIR]') + |
| api.path.exists( |
| api.path['start_dir'].join('skia'), |
| api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', |
| 'svg', 'VERSION'), |
| api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', |
| 'skp', 'VERSION'), |
| ) |
| ) |
| |
| yield test |