| Index: infra/bots/recipes/swarm_perf.py
 | 
| diff --git a/infra/bots/recipes/swarm_perf.py b/infra/bots/recipes/swarm_perf.py
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..8fda6f04af99379d4dccf071dcde0a3e698e224f
 | 
| --- /dev/null
 | 
| +++ b/infra/bots/recipes/swarm_perf.py
 | 
| @@ -0,0 +1,119 @@
 | 
| +# 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 perf.
 | 
| +
 | 
| +
 | 
| +DEPS = [
 | 
| +  'recipe_engine/json',
 | 
| +  'recipe_engine/path',
 | 
| +  'recipe_engine/platform',
 | 
| +  'recipe_engine/properties',
 | 
| +  'recipe_engine/raw_io',
 | 
| +  'skia',
 | 
| +]
 | 
| +
 | 
| +
 | 
| +TEST_BUILDERS = {
 | 
| +  'client.skia': {
 | 
| +    'skiabot-linux-swarm-000': [
 | 
| +      'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release',
 | 
| +      'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot',
 | 
| +      'Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind',
 | 
| +      'Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release',
 | 
| +      'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench',
 | 
| +    ],
 | 
| +  },
 | 
| +}
 | 
| +
 | 
| +
 | 
| +def RunSteps(api):
 | 
| +  api.skia.setup()
 | 
| +  api.skia.perf_steps()
 | 
| +  api.skia.cleanup_steps()
 | 
| +  api.skia.check_failure()
 | 
| +
 | 
| +
 | 
| +def GenTests(api):
 | 
| +  def AndroidTestData(builder):
 | 
| +    test_data = (
 | 
| +        api.step_data(
 | 
| +            'get EXTERNAL_STORAGE dir',
 | 
| +            stdout=api.raw_io.output('/storage/emulated/legacy')) +
 | 
| +        api.step_data(
 | 
| +            'adb root',
 | 
| +            stdout=api.raw_io.output('restarting adbd as root')) +
 | 
| +        api.step_data(
 | 
| +            'read SKP_VERSION',
 | 
| +            stdout=api.raw_io.output('42')) +
 | 
| +        api.step_data(
 | 
| +            'read SK_IMAGE_VERSION',
 | 
| +            stdout=api.raw_io.output('42')) +
 | 
| +        api.step_data(
 | 
| +            'exists skia_perf',
 | 
| +            stdout=api.raw_io.output('')) +
 | 
| +        api.step_data(
 | 
| +            'which adb',
 | 
| +            retcode=1)
 | 
| +    )
 | 
| +    return test_data
 | 
| +
 | 
| +  for mastername, slaves in TEST_BUILDERS.iteritems():
 | 
| +    for slavename, builders_by_slave in slaves.iteritems():
 | 
| +      for builder in builders_by_slave:
 | 
| +        test = (
 | 
| +          api.test(builder) +
 | 
| +          api.properties(buildername=builder,
 | 
| +                         mastername=mastername,
 | 
| +                         slavename=slavename,
 | 
| +                         buildnumber=5,
 | 
| +                         revision='abc123',
 | 
| +                         path_config='kitchen',
 | 
| +                         swarm_out_dir='[SWARM_OUT_DIR]') +
 | 
| +          api.path.exists(
 | 
| +              api.path['slave_build'].join('skia'),
 | 
| +              api.path['slave_build'].join('skia', 'infra', 'bots', 'assets',
 | 
| +                                           'skimage', 'VERSION'),
 | 
| +              api.path['slave_build'].join('skia', 'infra', 'bots', 'assets',
 | 
| +                                           'skp', 'VERSION'),
 | 
| +              api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt')
 | 
| +          )
 | 
| +        )
 | 
| +        if ('Android' in builder and
 | 
| +            ('Test' in builder or 'Perf' in builder) and
 | 
| +            not 'Appurify' in builder):
 | 
| +          test += AndroidTestData(builder)
 | 
| +        if 'Trybot' in builder:
 | 
| +          test += api.properties(issue=500,
 | 
| +                                 patchset=1,
 | 
| +                                 rietveld='https://codereview.chromium.org')
 | 
| +        if 'Win' in builder:
 | 
| +          test += api.platform('win', 64)
 | 
| +
 | 
| +        yield test
 | 
| +
 | 
| +  builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot'
 | 
| +  yield (
 | 
| +    api.test('big_issue_number') +
 | 
| +    api.properties(buildername=builder,
 | 
| +                   mastername='client.skia.compile',
 | 
| +                   slavename='skiabot-linux-swarm-000',
 | 
| +                   buildnumber=5,
 | 
| +                   revision='abc123',
 | 
| +                   path_config='kitchen',
 | 
| +                   swarm_out_dir='[SWARM_OUT_DIR]',
 | 
| +                   rietveld='https://codereview.chromium.org',
 | 
| +                   patchset=1,
 | 
| +                   issue=2147533002L) +
 | 
| +    api.path.exists(
 | 
| +        api.path['slave_build'].join('skia'),
 | 
| +        api.path['slave_build'].join('skia', 'infra', 'bots', 'assets',
 | 
| +                                     'skimage', 'VERSION'),
 | 
| +        api.path['slave_build'].join('skia', 'infra', 'bots', 'assets',
 | 
| +                                     'skp', 'VERSION'),
 | 
| +        api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt')
 | 
| +    ) +
 | 
| +    api.platform('win', 64)
 | 
| +  )
 | 
| 
 |