OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 # Recipe module for Skia Swarming perf. | 6 # Recipe module for Skia Swarming perf. |
7 | 7 |
8 | 8 |
9 DEPS = [ | 9 DEPS = [ |
10 'build/file', | 10 'build/file', |
11 'core', | 11 'core', |
12 'recipe_engine/json', | 12 'recipe_engine/json', |
13 'recipe_engine/path', | 13 'recipe_engine/path', |
14 'recipe_engine/platform', | 14 'recipe_engine/platform', |
15 'recipe_engine/properties', | 15 'recipe_engine/properties', |
16 'recipe_engine/raw_io', | 16 'recipe_engine/raw_io', |
17 'run', | 17 'run', |
18 'flavor', | 18 'flavor', |
19 'vars', | 19 'vars', |
20 ] | 20 ] |
21 | 21 |
22 | 22 |
23 TEST_BUILDERS = { | 23 TEST_BUILDERS = { |
24 'client.skia': { | 24 'client.skia': { |
25 'skiabot-linux-swarm-000': [ | 25 'skiabot-linux-swarm-000': [ |
26 'Perf-Android-GCC-GalaxyS3-GPU-Mali400-Arm7-Release', | 26 ('Perf-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug' + |
27 'Perf-Android-GCC-NVIDIA_Shield-GPU-TegraX1-Arm64-Debug-Vulkan', | 27 '-GN_Android_Vulkan'), |
28 'Perf-Android-GCC-Nexus5-GPU-Adreno330-Arm7-Debug', | 28 'Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android', |
29 'Perf-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release', | 29 'Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android', |
30 'Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release', | 30 'Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android', |
31 'Perf-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Release', | 31 'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android', |
32 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', | 32 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', |
33 'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN', | 33 'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN', |
34 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind', | 34 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind', |
35 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench', | 35 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench', |
36 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', | 36 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', |
37 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release', | 37 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release', |
38 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', | 38 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', |
39 'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug', | 39 'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug', |
40 ], | 40 ], |
41 }, | 41 }, |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 # so defensively disable them in nanobench, too. | 120 # so defensively disable them in nanobench, too. |
121 # FIXME (scroggo): This may have just been due to SkImageDecoder's | 121 # FIXME (scroggo): This may have just been due to SkImageDecoder's |
122 # buildTileIndex leaking memory (https://bug.skia.org/4360). That is | 122 # buildTileIndex leaking memory (https://bug.skia.org/4360). That is |
123 # disabled by default for nanobench, so we may not need this. | 123 # disabled by default for nanobench, so we may not need this. |
124 # FIXME (scroggo): Share image blacklists between dm and nanobench? | 124 # FIXME (scroggo): Share image blacklists between dm and nanobench? |
125 if 'x86' in bot and not 'x86-64' in bot: | 125 if 'x86' in bot and not 'x86-64' in bot: |
126 match.append('~interlaced1.png') | 126 match.append('~interlaced1.png') |
127 match.append('~interlaced2.png') | 127 match.append('~interlaced2.png') |
128 match.append('~interlaced3.png') | 128 match.append('~interlaced3.png') |
129 | 129 |
130 # This low-end Android bot crashes about 25% of the time while running the | |
131 # (somewhat intense) shapes benchmarks. | |
132 if 'Perf-Android-GCC-GalaxyS3-GPU-Mali400-Arm7-Release' in bot: | |
133 match.append('~shapes_') | |
134 | |
135 # We do not need or want to benchmark the decodes of incomplete images. | 130 # We do not need or want to benchmark the decodes of incomplete images. |
136 # In fact, in nanobench we assert that the full image decode succeeds. | 131 # In fact, in nanobench we assert that the full image decode succeeds. |
137 match.append('~inc0.gif') | 132 match.append('~inc0.gif') |
138 match.append('~inc1.gif') | 133 match.append('~inc1.gif') |
139 match.append('~incInterlaced.gif') | 134 match.append('~incInterlaced.gif') |
140 match.append('~inc0.jpg') | 135 match.append('~inc0.jpg') |
141 match.append('~incGray.jpg') | 136 match.append('~incGray.jpg') |
142 match.append('~inc0.wbmp') | 137 match.append('~inc0.wbmp') |
143 match.append('~inc1.wbmp') | 138 match.append('~inc1.wbmp') |
144 match.append('~inc0.webp') | 139 match.append('~inc0.webp') |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 api.core.setup() | 235 api.core.setup() |
241 try: | 236 try: |
242 api.flavor.install() | 237 api.flavor.install() |
243 perf_steps(api) | 238 perf_steps(api) |
244 finally: | 239 finally: |
245 api.flavor.cleanup_steps() | 240 api.flavor.cleanup_steps() |
246 api.run.check_failure() | 241 api.run.check_failure() |
247 | 242 |
248 | 243 |
249 def GenTests(api): | 244 def GenTests(api): |
250 def AndroidTestData(builder): | |
251 test_data = ( | |
252 api.step_data( | |
253 'get EXTERNAL_STORAGE dir', | |
254 stdout=api.raw_io.output('/storage/emulated/legacy')) + | |
255 api.step_data( | |
256 'read SKP_VERSION', | |
257 stdout=api.raw_io.output('42')) + | |
258 api.step_data( | |
259 'read SK_IMAGE_VERSION', | |
260 stdout=api.raw_io.output('42')) + | |
261 api.step_data( | |
262 'read SVG_VERSION', | |
263 stdout=api.raw_io.output('42')) + | |
264 api.step_data( | |
265 'which adb', | |
266 retcode=1) | |
267 ) | |
268 if not 'Debug' in builder: | |
269 test_data += api.step_data( | |
270 'exists skia_perf', | |
271 stdout=api.raw_io.output('')) | |
272 if not 'GalaxyS3' in builder: | |
273 test_data += api.step_data( | |
274 'adb root', | |
275 stdout=api.raw_io.output('restarting adbd as root')) | |
276 return test_data | |
277 | |
278 for mastername, slaves in TEST_BUILDERS.iteritems(): | 245 for mastername, slaves in TEST_BUILDERS.iteritems(): |
279 for slavename, builders_by_slave in slaves.iteritems(): | 246 for slavename, builders_by_slave in slaves.iteritems(): |
280 for builder in builders_by_slave: | 247 for builder in builders_by_slave: |
281 test = ( | 248 test = ( |
282 api.test(builder) + | 249 api.test(builder) + |
283 api.properties(buildername=builder, | 250 api.properties(buildername=builder, |
284 mastername=mastername, | 251 mastername=mastername, |
285 slavename=slavename, | 252 slavename=slavename, |
286 buildnumber=5, | 253 buildnumber=5, |
287 revision='abc123', | 254 revision='abc123', |
288 path_config='kitchen', | 255 path_config='kitchen', |
289 swarm_out_dir='[SWARM_OUT_DIR]') + | 256 swarm_out_dir='[SWARM_OUT_DIR]') + |
290 api.path.exists( | 257 api.path.exists( |
291 api.path['slave_build'].join('skia'), | 258 api.path['slave_build'].join('skia'), |
292 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', | 259 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', |
293 'skimage', 'VERSION'), | 260 'skimage', 'VERSION'), |
294 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', | 261 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', |
295 'skp', 'VERSION'), | 262 'skp', 'VERSION'), |
296 api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') | 263 api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') |
297 ) | 264 ) |
298 ) | 265 ) |
299 if ('Android' in builder and | |
300 ('Test' in builder or 'Perf' in builder) and | |
301 not 'Appurify' in builder): | |
302 test += AndroidTestData(builder) | |
303 if 'Trybot' in builder: | 266 if 'Trybot' in builder: |
304 test += api.properties(issue=500, | 267 test += api.properties(issue=500, |
305 patchset=1, | 268 patchset=1, |
306 rietveld='https://codereview.chromium.org') | 269 rietveld='https://codereview.chromium.org') |
307 if 'Win' in builder: | 270 if 'Win' in builder: |
308 test += api.platform('win', 64) | 271 test += api.platform('win', 64) |
309 | 272 |
310 yield test | 273 yield test |
311 | 274 |
312 builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' | 275 builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 buildername='Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-' + | 310 buildername='Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-' + |
348 'Valgrind-Trybot', | 311 'Valgrind-Trybot', |
349 mastername='client.skia', | 312 mastername='client.skia', |
350 slavename='skiabot-linux-swarm-000', | 313 slavename='skiabot-linux-swarm-000', |
351 buildnumber=5, | 314 buildnumber=5, |
352 path_config='kitchen', | 315 path_config='kitchen', |
353 swarm_out_dir='[SWARM_OUT_DIR]', | 316 swarm_out_dir='[SWARM_OUT_DIR]', |
354 revision='abc123', | 317 revision='abc123', |
355 **gerrit_kwargs) | 318 **gerrit_kwargs) |
356 ) | 319 ) |
OLD | NEW |