1# Copyright 2016 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5 6# Example recipe w/ coverage. 7 8 9DEPS = [ 10 'perf', 11 'recipe_engine/path', 12 'recipe_engine/platform', 13 'recipe_engine/properties', 14 'recipe_engine/raw_io', 15] 16 17 18TEST_BUILDERS = { 19 'client.skia': { 20 'skiabot-linux-swarm-000': [ 21 ('Perf-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug' + 22 '-GN_Android_Vulkan'), 23 'Perf-Android-Clang-Nexus10-CPU-Exynos5250-arm-Release-Android', 24 'Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android', 25 'Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android', 26 'Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android', 27 'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android', 28 ('Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_' 29 'Android_Vulkan'), 30 'Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android', 31 'Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug', 32 'Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release', 33 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', 34 'Perf-Mac-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug-CommandBuffer', 35 'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN', 36 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-ANGLE', 37 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind', 38 ('Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind' + 39 '_AbandonGpuContext'), 40 'Perf-Ubuntu16-Clang-NUC-GPU-IntelIris540-x86_64-Debug-Vulkan', 41 'Perf-Ubuntu16-Clang-NUC-GPU-IntelIris540-x86_64-Release', 42 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', 43 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release', 44 'Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-ANGLE', 45 'Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-Vulkan', 46 'Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE', 47 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', 48 'Perf-iOS-Clang-iPadMini4-GPU-GX6450-arm-Release' 49 ], 50 }, 51} 52 53 54def RunSteps(api): 55 api.perf.run() 56 57 58def GenTests(api): 59 for mastername, slaves in TEST_BUILDERS.iteritems(): 60 for slavename, builders_by_slave in slaves.iteritems(): 61 for builder in builders_by_slave: 62 test = ( 63 api.test(builder) + 64 api.properties(buildername=builder, 65 mastername=mastername, 66 slavename=slavename, 67 buildnumber=5, 68 revision='abc123', 69 path_config='kitchen', 70 swarm_out_dir='[SWARM_OUT_DIR]') + 71 api.path.exists( 72 api.path['start_dir'].join('skia'), 73 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 74 'skimage', 'VERSION'), 75 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 76 'skp', 'VERSION'), 77 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt') 78 ) 79 ) 80 if 'Trybot' in builder: 81 test += api.properties(issue=500, 82 patchset=1, 83 rietveld='https://codereview.chromium.org') 84 if 'Win' in builder: 85 test += api.platform('win', 64) 86 87 if 'Chromecast' in builder: 88 test += api.step_data('read chromecast ip', 89 stdout=api.raw_io.output('192.168.1.2:5555')) 90 91 yield test 92 93 builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' 94 yield ( 95 api.test('big_issue_number') + 96 api.properties(buildername=builder, 97 mastername='client.skia.compile', 98 slavename='skiabot-linux-swarm-000', 99 buildnumber=5, 100 revision='abc123', 101 path_config='kitchen', 102 swarm_out_dir='[SWARM_OUT_DIR]', 103 rietveld='https://codereview.chromium.org', 104 patchset=1, 105 issue=2147533002L) + 106 api.path.exists( 107 api.path['start_dir'].join('skia'), 108 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 109 'skimage', 'VERSION'), 110 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 111 'skp', 'VERSION'), 112 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 113 'svg', 'VERSION'), 114 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt') 115 ) + 116 api.platform('win', 64) 117 ) 118 119 builder = ('Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind-' 120 'Trybot') 121 yield ( 122 api.test('recipe_with_gerrit_patch') + 123 api.properties( 124 buildername=builder, 125 mastername='client.skia', 126 slavename='skiabot-linux-swarm-000', 127 buildnumber=5, 128 path_config='kitchen', 129 swarm_out_dir='[SWARM_OUT_DIR]', 130 revision='abc123', 131 patch_storage='gerrit') + 132 api.properties.tryserver( 133 buildername=builder, 134 gerrit_project='skia', 135 gerrit_url='https://skia-review.googlesource.com/', 136 ) 137 ) 138 139 builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' 140 yield ( 141 api.test('nobuildbot') + 142 api.properties( 143 buildername=builder, 144 mastername='client.skia', 145 slavename='skiabot-linux-swarm-000', 146 buildnumber=5, 147 revision='abc123', 148 path_config='kitchen', 149 nobuildbot='True', 150 swarm_out_dir='[SWARM_OUT_DIR]', 151 patch_storage='gerrit') + 152 api.properties.tryserver( 153 buildername=builder, 154 gerrit_project='skia', 155 gerrit_url='https://skia-review.googlesource.com/', 156 ) + 157 api.path.exists( 158 api.path['start_dir'].join('skia'), 159 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 160 'skimage', 'VERSION'), 161 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 162 'skp', 'VERSION'), 163 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 164 'svg', 'VERSION'), 165 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt') 166 ) + 167 api.platform('win', 64) + 168 api.step_data('get swarming bot id', 169 stdout=api.raw_io.output('skia-bot-123')) + 170 api.step_data('get swarming task id', stdout=api.raw_io.output('123456')) 171 ) 172 173 builder = 'Perf-Android-Clang-NexusPlayer-CPU-SSE4-x86-Debug-GN_Android' 174 yield ( 175 api.test('failed_push') + 176 api.properties(buildername=builder, 177 mastername='client.skia', 178 slavename='skiabot-linux-swarm-000', 179 buildnumber=6, 180 revision='abc123', 181 path_config='kitchen', 182 swarm_out_dir='[SWARM_OUT_DIR]') + 183 api.path.exists( 184 api.path['start_dir'].join('skia'), 185 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 186 'skimage', 'VERSION'), 187 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 188 'skp', 'VERSION'), 189 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets', 190 'svg', 'VERSION'), 191 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt') 192 ) + 193 api.step_data('push [START_DIR]/skia/resources/* '+ 194 '/sdcard/revenge_of_the_skiabot/resources', retcode=1) 195 ) 196