blob: bdfbae925ce10656c24c79d90c607b961e141ed4 [file] [log] [blame]
borenet1ed2ae42016-07-26 11:52:17 -07001# 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# Recipe module for Skia Swarming test.
7
8
9DEPS = [
Eric Boren4c7754c2017-04-10 08:19:10 -040010 'core',
Eric Boren896af752017-04-24 13:22:56 -040011 'env',
12 'flavor',
Robert Iannucci297a7ef2017-05-12 19:09:38 -070013 'recipe_engine/context',
Robert Iannucci8cd50412017-07-07 14:36:58 -070014 'recipe_engine/file',
Eric Boren4c7754c2017-04-10 08:19:10 -040015 'recipe_engine/json',
borenet1ed2ae42016-07-26 11:52:17 -070016 'recipe_engine/path',
17 'recipe_engine/platform',
18 'recipe_engine/properties',
Eric Boren4c7754c2017-04-10 08:19:10 -040019 'recipe_engine/python',
borenet1ed2ae42016-07-26 11:52:17 -070020 'recipe_engine/raw_io',
Eric Boren4c7754c2017-04-10 08:19:10 -040021 'recipe_engine/step',
Eric Boren4c7754c2017-04-10 08:19:10 -040022 'run',
23 'vars',
borenet1ed2ae42016-07-26 11:52:17 -070024]
25
26
Eric Boren89cd3572017-06-28 13:50:22 -040027def dm_flags(api, bot):
Eric Boren4c7754c2017-04-10 08:19:10 -040028 args = []
Brian Osmanf9810662017-08-30 10:02:10 -040029 configs = []
30 blacklisted = []
31
32 def blacklist(quad):
33 config, src, options, name = quad.split(' ') if type(quad) is str else quad
34 if (config == '_' or
35 config in configs or
36 (config[0] == '~' and config[1:] in configs)):
37 blacklisted.extend([config, src, options, name])
Eric Boren4c7754c2017-04-10 08:19:10 -040038
Mike Klein97d6a7a2017-07-24 10:37:19 -040039 # We've been spending lots of time writing out and especially uploading
40 # .pdfs, but not doing anything further with them. skia:6821
41 args.extend(['--dont_write', 'pdf'])
42
Eric Boren4c7754c2017-04-10 08:19:10 -040043 # This enables non-deterministic random seeding of the GPU FP optimization
Brian Osman7a34dca2017-04-13 13:40:29 -040044 # test.
Ben Wagner6da8f792017-08-10 12:22:56 -040045 # Not Android due to:
Ben Wagner11ab43c2017-08-09 18:05:59 -040046 # - https://skia.googlesource.com/skia/+/
47 # 5910ed347a638ded8cd4c06dbfda086695df1112/BUILD.gn#160
48 # - https://skia.googlesource.com/skia/+/
49 # ce06e261e68848ae21cac1052abc16bc07b961bf/tests/ProcessorTest.cpp#307
Ben Wagner6da8f792017-08-10 12:22:56 -040050 # Not MSAN due to:
51 # - https://skia.googlesource.com/skia/+/
52 # 0ac06e47269a40c177747310a613d213c95d1d6d/infra/bots/recipe_modules/
53 # flavor/gn_flavor.py#80
54 if 'Android' not in bot and 'MSAN' not in bot:
Ben Wagner11ab43c2017-08-09 18:05:59 -040055 args.append('--randomProcessorTest')
Eric Boren4c7754c2017-04-10 08:19:10 -040056
57 # 32-bit desktop bots tend to run out of memory, because they have relatively
58 # far more cores than RAM (e.g. 32 cores, 3G RAM). Hold them back a bit.
59 if '-x86-' in bot and not 'NexusPlayer' in bot:
Mike Kleindf669812017-06-23 13:30:17 -040060 args.extend(['--threads', '4'])
Eric Boren4c7754c2017-04-10 08:19:10 -040061
Ben Wagner5cf6d322017-12-07 10:23:07 -050062 # Nexus7 runs out of memory due to having 4 cores and only 1G RAM.
63 if 'CPU' in bot and 'Nexus7' in bot:
Ben Wagner1cfb6bc2017-12-07 12:19:30 -050064 args.extend(['--threads', '2'])
Ben Wagner5cf6d322017-12-07 10:23:07 -050065
Kevin Lubick2dafbd72017-08-31 10:39:05 -040066 if 'Chromecast' in bot:
67 args.extend(['--threads', '0'])
68
Eric Boren4c7754c2017-04-10 08:19:10 -040069 # Avoid issues with dynamically exceeding resource cache limits.
70 if 'Test' in bot and 'DISCARDABLE' in bot:
Mike Kleindf669812017-06-23 13:30:17 -040071 args.extend(['--threads', '0'])
72
73 # See if staying on the main thread helps skia:6748.
74 if 'Test-iOS' in bot:
75 args.extend(['--threads', '0'])
Eric Boren4c7754c2017-04-10 08:19:10 -040076
Derek Sollenbergeredfe3df2017-07-19 15:25:24 -040077 # Android's kernel will occasionally attempt to kill our process, using
78 # SIGINT, in an effort to free up resources. If requested, that signal
79 # is ignored and dm will keep attempting to proceed until we actually
80 # exhaust the available resources.
81 if ('NexusPlayer' in bot or
Derek Sollenbergeredfe3df2017-07-19 15:25:24 -040082 'PixelC' in bot):
83 args.append('--ignoreSigInt')
84
Ben Wagner32fa5102017-08-10 21:25:55 -040085 if api.vars.builder_cfg.get('cpu_or_gpu') == 'CPU':
86 args.append('--nogpu')
87
88 # These are the canonical configs that we would ideally run on all bots. We
89 # may opt out or substitute some below for specific bots
90 configs.extend(['8888', 'srgb', 'pdf'])
91
92 # Runs out of memory on Android bots. Everyone else seems fine.
93 if 'Android' in bot:
94 configs.remove('pdf')
95
96 if '-GCE-' in bot:
97 configs.extend(['565'])
98 configs.extend(['f16'])
99 configs.extend(['sp-8888', '2ndpic-8888']) # Test niche uses of SkPicture.
100 configs.extend(['lite-8888']) # Experimental display list.
Mike Kleinb7ea3da2017-10-31 17:42:08 +0000101 configs.extend(['gbr-8888'])
Ben Wagner32fa5102017-08-10 21:25:55 -0400102
Ben Wagner0ecc2b7e2017-11-09 22:10:44 -0500103 configs.extend(mode + '-8888' for mode in ['serialize', 'tiles_rt', 'pic'])
Ben Wagner32fa5102017-08-10 21:25:55 -0400104
Ben Wagner32fa5102017-08-10 21:25:55 -0400105 # This bot only differs from vanilla CPU bots in 8888 config.
106 if 'SK_FORCE_RASTER_PIPELINE_BLITTER' in bot:
107 configs = ['8888', 'srgb']
108
Ben Wagner077710b2017-10-26 13:12:39 -0400109 if 'FSAA' in bot or 'FAAA' in bot or 'FDAA' in bot:
110 # Scan converters shouldn't really be sensitive to different color
111 # configurations.
112 configs = ['8888', 'tiles_rt-8888']
113
Mike Klein9a01a212017-11-03 12:19:54 -0400114 if 'NativeFonts' in bot:
115 configs = ['8888']
116
Ben Wagner32fa5102017-08-10 21:25:55 -0400117 elif api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU':
118 args.append('--nocpu')
119
120 # Add in either gles or gl configs to the canonical set based on OS
121 sample_count = '8'
122 gl_prefix = 'gl'
123 if 'Android' in bot or 'iOS' in bot:
124 sample_count = '4'
125 # We want to test the OpenGL config not the GLES config on the Shield
126 if 'NVIDIA_Shield' not in bot:
127 gl_prefix = 'gles'
128 elif 'Intel' in bot:
129 sample_count = ''
130 elif 'ChromeOS' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400131 gl_prefix = 'gles'
Eric Boren4c7754c2017-04-10 08:19:10 -0400132
Ben Wagner32fa5102017-08-10 21:25:55 -0400133 configs.extend([gl_prefix, gl_prefix + 'dft', gl_prefix + 'srgb'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400134 if sample_count is not '':
Ben Wagner32fa5102017-08-10 21:25:55 -0400135 configs.append(gl_prefix + 'msaa' + sample_count)
Eric Boren4c7754c2017-04-10 08:19:10 -0400136
Ben Wagner32fa5102017-08-10 21:25:55 -0400137 # The NP produces a long error stream when we run with MSAA. The Tegra3 just
138 # doesn't support it.
139 if ('NexusPlayer' in bot or
140 'Tegra3' in bot or
141 # We aren't interested in fixing msaa bugs on current iOS devices.
142 'iPad4' in bot or
143 'iPadPro' in bot or
144 'iPhone6' in bot or
145 'iPhone7' in bot or
146 # skia:5792
147 'IntelHD530' in bot or
148 'IntelIris540' in bot):
149 configs = [x for x in configs if 'msaa' not in x]
Eric Boren4c7754c2017-04-10 08:19:10 -0400150
Ben Wagner32fa5102017-08-10 21:25:55 -0400151 # The NP produces different images for dft on every run.
152 if 'NexusPlayer' in bot:
153 configs = [x for x in configs if 'dft' not in x]
Eric Boren4c7754c2017-04-10 08:19:10 -0400154
Ben Wagner32fa5102017-08-10 21:25:55 -0400155 if '-TSAN' not in bot and sample_count is not '':
156 if ('TegraK1' in bot or
157 'TegraX1' in bot or
158 'GTX550Ti' in bot or
159 'GTX660' in bot or
160 'QuadroP400' in bot or
161 ('GT610' in bot and 'Ubuntu17' not in bot)):
162 configs.append(gl_prefix + 'nvprdit' + sample_count)
Kevin Lubickae95db42017-04-10 13:05:49 -0400163
Ben Wagner32fa5102017-08-10 21:25:55 -0400164 # We want to test both the OpenGL config and the GLES config on Linux Intel:
165 # GL is used by Chrome, GLES is used by ChromeOS.
Brian Osmanf9810662017-08-30 10:02:10 -0400166 # Also do the Ganesh threading verification test (render with and without
167 # worker threads, using only the SW path renderer, and compare the results).
Ben Wagner32fa5102017-08-10 21:25:55 -0400168 if 'Intel' in bot and api.vars.is_linux:
Brian Osmanf9810662017-08-30 10:02:10 -0400169 configs.extend(['gles', 'glesdft', 'glessrgb', 'gltestthreading'])
170 # skbug.com/6333, skbug.com/6419, skbug.com/6702
171 blacklist('gltestthreading gm _ lcdblendmodes')
172 blacklist('gltestthreading gm _ lcdoverlap')
Brian Osmanbef21ba2017-08-31 13:49:05 -0400173 blacklist('gltestthreading gm _ textbloblooper')
Brian Osman1e75f2a2017-09-07 09:30:44 -0400174 # All of these GMs are flaky, too:
175 blacklist('gltestthreading gm _ bleed_alpha_bmp')
176 blacklist('gltestthreading gm _ bleed_alpha_bmp_shader')
177 blacklist('gltestthreading gm _ bleed_alpha_image')
178 blacklist('gltestthreading gm _ bleed_alpha_image_shader')
179 blacklist('gltestthreading gm _ savelayer_with_backdrop')
180 blacklist('gltestthreading gm _ persp_shaders_bw')
Brian Salomon5c6ac642017-12-19 11:09:32 -0500181 blacklist('gltestthreading gm _ dftext_blob_persp')
Mike Klein97627d42017-05-11 13:12:48 -0400182
Ben Wagner32fa5102017-08-10 21:25:55 -0400183 # The following devices do not support glessrgb.
184 if 'glessrgb' in configs:
185 if ('IntelHD405' in bot or
Ben Wagnerab10c822017-12-19 15:14:12 -0500186 'IntelIris640' in bot or
Ben Wagner32fa5102017-08-10 21:25:55 -0400187 'IntelBayTrail' in bot or
188 'IntelHD2000' in bot or
189 'AndroidOne' in bot or
190 'Nexus7' in bot or
191 'NexusPlayer' in bot):
192 configs.remove('glessrgb')
193
Brian Osman09eba3c2017-11-06 14:39:18 -0500194 # Test SkColorSpaceXformCanvas on a few bots
195 if 'GTX1070' in bot:
196 configs.append('gbr-gl')
197
Ben Wagner32fa5102017-08-10 21:25:55 -0400198 # CommandBuffer bot *only* runs the command_buffer config.
199 if 'CommandBuffer' in bot:
200 configs = ['commandbuffer']
201
202 # ANGLE bot *only* runs the angle configs
203 if 'ANGLE' in bot:
204 configs = ['angle_d3d11_es2',
205 'angle_d3d9_es2',
206 'angle_gl_es2',
207 'angle_d3d11_es3']
208 if sample_count is not '':
209 configs.append('angle_d3d11_es2_msaa' + sample_count)
210 configs.append('angle_d3d11_es3_msaa' + sample_count)
211
212 # Vulkan bot *only* runs the vk config.
213 if 'Vulkan' in bot:
214 configs = ['vk']
215
216 if 'ChromeOS' in bot:
217 # Just run GLES for now - maybe add gles_msaa4 in the future
218 configs = ['gles']
219
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400220 if 'Chromecast' in bot:
221 configs = ['gles', '8888']
222
Ben Wagner32fa5102017-08-10 21:25:55 -0400223 # Test coverage counting path renderer.
224 if 'CCPR' in bot:
225 configs = [c for c in configs if c == 'gl' or c == 'gles']
Chris Dalton7a0ebfc2017-10-13 12:35:50 -0600226 args.extend(['--pr', 'ccpr', '--cachePathMasks', 'false'])
Chris Dalton97598a52017-07-18 10:49:07 -0600227
Kevin Lubick32f318b2017-10-17 13:40:52 -0400228 tf = api.vars.builder_cfg.get('test_filter')
229 if 'All' != tf:
230 # Expected format: shard_XX_YY
231 parts = tf.split('_')
232 if len(parts) == 3:
233 args.extend(['--shard', parts[1]])
234 args.extend(['--shards', parts[2]])
235 else:
236 raise Exception('Invalid task name - bad shards') #pragma: nocover
237
Chris Dalton80ace822017-07-20 10:54:04 -0600238 args.append('--config')
239 args.extend(configs)
240
Eric Boren4c7754c2017-04-10 08:19:10 -0400241 # Run tests, gms, and image decoding tests everywhere.
242 args.extend('--src tests gm image colorImage svg'.split(' '))
Ben Wagner0ecc2b7e2017-11-09 22:10:44 -0500243 if api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU':
Chris Dalton7c304ba2017-09-07 11:57:16 -0600244 # Don't run the 'svgparse_*' svgs on GPU.
245 blacklist('_ svg _ svgparse_')
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400246 elif bot == 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN':
Chris Dalton7c304ba2017-09-07 11:57:16 -0600247 # Only run the CPU SVGs on 8888.
248 blacklist('~8888 svg _ _')
249 else:
250 # On CPU SVGs we only care about parsing. Only run them on the above bot.
251 args.remove('svg')
Eric Boren4c7754c2017-04-10 08:19:10 -0400252
Mike Klein97627d42017-05-11 13:12:48 -0400253 # Eventually I'd like these to pass, but for now just skip 'em.
254 if 'SK_FORCE_RASTER_PIPELINE_BLITTER' in bot:
255 args.remove('tests')
256
Mike Klein9a01a212017-11-03 12:19:54 -0400257 if 'NativeFonts' in bot: # images won't exercise native font integration :)
258 args.remove('image')
259 args.remove('colorImage')
260
Eric Boren4c7754c2017-04-10 08:19:10 -0400261 # TODO: ???
262 blacklist('f16 _ _ dstreadshuffle')
263 blacklist('glsrgb image _ _')
264 blacklist('glessrgb image _ _')
265
Eric Boren4c7754c2017-04-10 08:19:10 -0400266 # Not any point to running these.
Mike Kleinb7ea3da2017-10-31 17:42:08 +0000267 blacklist('gbr-8888 image _ _')
268 blacklist('gbr-8888 colorImage _ _')
Eric Boren4c7754c2017-04-10 08:19:10 -0400269
270 if 'Valgrind' in bot:
271 # These take 18+ hours to run.
272 blacklist('pdf gm _ fontmgr_iter')
273 blacklist('pdf _ _ PANO_20121023_214540.jpg')
274 blacklist('pdf skp _ worldjournal')
275 blacklist('pdf skp _ desk_baidu.skp')
276 blacklist('pdf skp _ desk_wikipedia.skp')
277 blacklist('_ svg _ _')
278
279 if 'iOS' in bot:
280 blacklist(gl_prefix + ' skp _ _')
281
282 if 'Mac' in bot or 'iOS' in bot:
283 # CG fails on questionable bmps
284 blacklist('_ image gen_platf rgba32abf.bmp')
285 blacklist('_ image gen_platf rgb24prof.bmp')
286 blacklist('_ image gen_platf rgb24lprof.bmp')
287 blacklist('_ image gen_platf 8bpp-pixeldata-cropped.bmp')
288 blacklist('_ image gen_platf 4bpp-pixeldata-cropped.bmp')
289 blacklist('_ image gen_platf 32bpp-pixeldata-cropped.bmp')
290 blacklist('_ image gen_platf 24bpp-pixeldata-cropped.bmp')
291
292 # CG has unpredictable behavior on this questionable gif
293 # It's probably using uninitialized memory
294 blacklist('_ image gen_platf frame_larger_than_image.gif')
295
296 # CG has unpredictable behavior on incomplete pngs
297 # skbug.com/5774
298 blacklist('_ image gen_platf inc0.png')
299 blacklist('_ image gen_platf inc1.png')
300 blacklist('_ image gen_platf inc2.png')
301 blacklist('_ image gen_platf inc3.png')
302 blacklist('_ image gen_platf inc4.png')
303 blacklist('_ image gen_platf inc5.png')
304 blacklist('_ image gen_platf inc6.png')
305 blacklist('_ image gen_platf inc7.png')
306 blacklist('_ image gen_platf inc8.png')
307 blacklist('_ image gen_platf inc9.png')
308 blacklist('_ image gen_platf inc10.png')
309 blacklist('_ image gen_platf inc11.png')
310 blacklist('_ image gen_platf inc12.png')
311 blacklist('_ image gen_platf inc13.png')
312 blacklist('_ image gen_platf inc14.png')
313
Ben Wagner3f679142017-11-27 13:02:25 -0500314 # These images fail after Mac 10.13.1 upgrade.
315 blacklist('_ image gen_platf incInterlaced.gif')
316 blacklist('_ image gen_platf inc1.gif')
317 blacklist('_ image gen_platf inc0.gif')
318 blacklist('_ image gen_platf butterfly.gif')
319
Matt Sarett6c50a2e2017-05-01 09:13:05 -0400320 # WIC fails on questionable bmps
Eric Boren4c7754c2017-04-10 08:19:10 -0400321 if 'Win' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400322 blacklist('_ image gen_platf pal8os2v2.bmp')
323 blacklist('_ image gen_platf pal8os2v2-16.bmp')
324 blacklist('_ image gen_platf rgba32abf.bmp')
325 blacklist('_ image gen_platf rgb24prof.bmp')
326 blacklist('_ image gen_platf rgb24lprof.bmp')
327 blacklist('_ image gen_platf 8bpp-pixeldata-cropped.bmp')
328 blacklist('_ image gen_platf 4bpp-pixeldata-cropped.bmp')
329 blacklist('_ image gen_platf 32bpp-pixeldata-cropped.bmp')
330 blacklist('_ image gen_platf 24bpp-pixeldata-cropped.bmp')
Eric Boren4c7754c2017-04-10 08:19:10 -0400331 if 'x86_64' in bot and 'CPU' in bot:
332 # This GM triggers a SkSmallAllocator assert.
333 blacklist('_ gm _ composeshader_bitmap')
334
Matt Sarett6c50a2e2017-05-01 09:13:05 -0400335 if 'Win' in bot or 'Mac' in bot:
Leon Scroggins III3a3cf432017-08-18 13:08:16 -0400336 # WIC and CG fail on arithmetic jpegs
Matt Sarett6c50a2e2017-05-01 09:13:05 -0400337 blacklist('_ image gen_platf testimgari.jpg')
Leon Scroggins III3a3cf432017-08-18 13:08:16 -0400338 # More questionable bmps that fail on Mac, too. skbug.com/6984
339 blacklist('_ image gen_platf rle8-height-negative.bmp')
340 blacklist('_ image gen_platf rle4-height-negative.bmp')
Matt Sarett6c50a2e2017-05-01 09:13:05 -0400341
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400342 if 'Android' in bot or 'iOS' in bot or 'Chromecast' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400343 # This test crashes the N9 (perhaps because of large malloc/frees). It also
344 # is fairly slow and not platform-specific. So we just disable it on all of
345 # Android and iOS. skia:5438
346 blacklist('_ test _ GrShape')
347
Kevin Lubick451b7432017-09-15 14:44:12 -0400348 if api.vars.internal_hardware_label == 1:
349 # skia:7046
350 blacklist('_ test _ WritePixelsNonTexture_Gpu')
351 blacklist('_ test _ WritePixels_Gpu')
352 blacklist('_ test _ GrSurfaceRenderability')
353 blacklist('_ test _ ES2BlendWithNoTexture')
354
Kevin Lubickbd27d1d2017-10-13 08:01:49 -0400355 if api.vars.internal_hardware_label == 2:
356 # skia:7160
357 blacklist('_ test _ SRGBReadWritePixels')
358 blacklist('_ test _ SRGBMipMap')
359
Kevin Lubick451b7432017-09-15 14:44:12 -0400360
Eric Boren4c7754c2017-04-10 08:19:10 -0400361 # skia:4095
Mike Reedfb499092017-06-26 13:53:32 +0000362 bad_serialize_gms = ['bleed_image',
Eric Boren4c7754c2017-04-10 08:19:10 -0400363 'c_gms',
364 'colortype',
365 'colortype_xfermodes',
366 'drawfilter',
367 'fontmgr_bounds_0.75_0',
368 'fontmgr_bounds_1_-0.25',
369 'fontmgr_bounds',
370 'fontmgr_match',
371 'fontmgr_iter',
372 'imagemasksubset']
373
374 # skia:5589
375 bad_serialize_gms.extend(['bitmapfilters',
376 'bitmapshaders',
377 'bleed',
378 'bleed_alpha_bmp',
379 'bleed_alpha_bmp_shader',
380 'convex_poly_clip',
381 'extractalpha',
382 'filterbitmap_checkerboard_32_32_g8',
383 'filterbitmap_image_mandrill_64',
384 'shadows',
385 'simpleaaclip_aaclip'])
386 # skia:5595
387 bad_serialize_gms.extend(['composeshader_bitmap',
388 'scaled_tilemodes_npot',
389 'scaled_tilemodes'])
390
391 # skia:5778
392 bad_serialize_gms.append('typefacerendering_pfaMac')
393 # skia:5942
394 bad_serialize_gms.append('parsedpaths')
395
396 # these use a custom image generator which doesn't serialize
397 bad_serialize_gms.append('ImageGeneratorExternal_rect')
398 bad_serialize_gms.append('ImageGeneratorExternal_shader')
399
400 # skia:6189
401 bad_serialize_gms.append('shadow_utils')
402
Matt Sarett9f3dcb32017-05-04 08:53:32 -0400403 # Not expected to round trip encoding/decoding.
Mike Klein0b78a692017-10-31 17:31:17 -0400404 bad_serialize_gms.append('all_bitmap_configs')
Matt Sarett9f3dcb32017-05-04 08:53:32 -0400405 bad_serialize_gms.append('makecolorspace')
406
Brian Salomon7072e222017-11-29 15:12:45 -0500407 # This GM forces a path to be convex. That property doesn't survive
408 # serialization.
409 bad_serialize_gms.append('analytic_antialias_convex')
410
Eric Boren4c7754c2017-04-10 08:19:10 -0400411 for test in bad_serialize_gms:
412 blacklist(['serialize-8888', 'gm', '_', test])
413
414 if 'Mac' not in bot:
415 for test in ['bleed_alpha_image', 'bleed_alpha_image_shader']:
416 blacklist(['serialize-8888', 'gm', '_', test])
417 # It looks like we skip these only for out-of-memory concerns.
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400418 if 'Win' in bot or 'Android' in bot or 'Chromecast' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400419 for test in ['verylargebitmap', 'verylarge_picture_image']:
420 blacklist(['serialize-8888', 'gm', '_', test])
Ben Wagner2e4e73f2017-09-08 15:21:44 -0400421 if 'Mac' in bot and 'CPU' in bot:
Ben Wagner38db79f2017-08-23 15:05:50 -0400422 # skia:6992
Ben Wagner6f98bc62017-09-05 16:02:28 -0400423 blacklist(['pic-8888', 'gm', '_', 'encode-platform'])
Ben Wagner38db79f2017-08-23 15:05:50 -0400424 blacklist(['serialize-8888', 'gm', '_', 'encode-platform'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400425
426 # skia:4769
427 for test in ['drawfilter']:
428 blacklist([ 'sp-8888', 'gm', '_', test])
429 blacklist([ 'pic-8888', 'gm', '_', test])
430 blacklist(['2ndpic-8888', 'gm', '_', test])
431 blacklist([ 'lite-8888', 'gm', '_', test])
432 # skia:4703
433 for test in ['image-cacherator-from-picture',
434 'image-cacherator-from-raster',
435 'image-cacherator-from-ctable']:
436 blacklist([ 'sp-8888', 'gm', '_', test])
437 blacklist([ 'pic-8888', 'gm', '_', test])
438 blacklist([ '2ndpic-8888', 'gm', '_', test])
439 blacklist(['serialize-8888', 'gm', '_', test])
440
441 # GM that requires raster-backed canvas
442 for test in ['gamut', 'complexclip4_bw', 'complexclip4_aa']:
443 blacklist([ 'sp-8888', 'gm', '_', test])
444 blacklist([ 'pic-8888', 'gm', '_', test])
445 blacklist([ 'lite-8888', 'gm', '_', test])
446 blacklist([ '2ndpic-8888', 'gm', '_', test])
447 blacklist(['serialize-8888', 'gm', '_', test])
448
449 # GM that not support tiles_rt
450 for test in ['complexclip4_bw', 'complexclip4_aa']:
451 blacklist([ 'tiles_rt-8888', 'gm', '_', test])
452
453 # Extensions for RAW images
Ben Wagner6e0a6b32017-09-26 14:11:15 -0400454 r = ['arw', 'cr2', 'dng', 'nef', 'nrw', 'orf', 'raf', 'rw2', 'pef', 'srw',
455 'ARW', 'CR2', 'DNG', 'NEF', 'NRW', 'ORF', 'RAF', 'RW2', 'PEF', 'SRW']
Eric Boren4c7754c2017-04-10 08:19:10 -0400456
457 # skbug.com/4888
458 # Blacklist RAW images (and a few large PNGs) on GPU bots
459 # until we can resolve failures.
Matt Sarett929bfeb2017-05-22 10:34:41 -0400460 if 'GPU' in bot:
461 blacklist('_ image _ interlaced1.png')
462 blacklist('_ image _ interlaced2.png')
463 blacklist('_ image _ interlaced3.png')
464 for raw_ext in r:
465 blacklist('_ image _ .%s' % raw_ext)
466
467 # Blacklist memory intensive tests on 32-bit bots.
Ben Wagnerfd66b5f2017-11-15 15:16:27 -0500468 if ('Win8' in bot or 'Win2016' in bot) and 'x86-' in bot:
Matt Sarett929bfeb2017-05-22 10:34:41 -0400469 blacklist('_ image f16 _')
Matt Sarett112565e2017-05-22 13:45:15 -0400470 blacklist('_ image _ abnormal.wbmp')
Eric Boren4c7754c2017-04-10 08:19:10 -0400471 blacklist('_ image _ interlaced1.png')
472 blacklist('_ image _ interlaced2.png')
473 blacklist('_ image _ interlaced3.png')
474 for raw_ext in r:
475 blacklist('_ image _ .%s' % raw_ext)
476
Eric Boren4c7754c2017-04-10 08:19:10 -0400477 if 'IntelHD405' in bot and 'Ubuntu16' in bot:
478 # skia:6331
479 blacklist(['glmsaa8', 'image', 'gen_codec_gpu', 'abnormal.wbmp'])
480 blacklist(['glesmsaa4', 'image', 'gen_codec_gpu', 'abnormal.wbmp'])
481
Ben Wagner3f330692017-12-07 15:14:54 -0500482 if 'Nexus5' in bot and 'GPU' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400483 # skia:5876
484 blacklist(['_', 'gm', '_', 'encode-platform'])
485
486 if 'AndroidOne-GPU' in bot: # skia:4697, skia:4704, skia:4694, skia:4705
487 blacklist(['_', 'gm', '_', 'bigblurs'])
488 blacklist(['_', 'gm', '_', 'bleed'])
489 blacklist(['_', 'gm', '_', 'bleed_alpha_bmp'])
490 blacklist(['_', 'gm', '_', 'bleed_alpha_bmp_shader'])
491 blacklist(['_', 'gm', '_', 'bleed_alpha_image'])
492 blacklist(['_', 'gm', '_', 'bleed_alpha_image_shader'])
493 blacklist(['_', 'gm', '_', 'bleed_image'])
494 blacklist(['_', 'gm', '_', 'dropshadowimagefilter'])
495 blacklist(['_', 'gm', '_', 'filterfastbounds'])
496 blacklist([gl_prefix, 'gm', '_', 'imageblurtiled'])
497 blacklist(['_', 'gm', '_', 'imagefiltersclipped'])
498 blacklist(['_', 'gm', '_', 'imagefiltersscaled'])
499 blacklist(['_', 'gm', '_', 'imageresizetiled'])
500 blacklist(['_', 'gm', '_', 'matrixconvolution'])
501 blacklist(['_', 'gm', '_', 'strokedlines'])
502 if sample_count is not '':
503 gl_msaa_config = gl_prefix + 'msaa' + sample_count
504 blacklist([gl_msaa_config, 'gm', '_', 'imageblurtiled'])
505 blacklist([gl_msaa_config, 'gm', '_', 'imagefiltersbase'])
506
507 match = []
508 if 'Valgrind' in bot: # skia:3021
509 match.append('~Threaded')
510
Ben Wagner6c126422017-06-19 12:45:54 -0400511 if 'Valgrind' in bot and 'PreAbandonGpuContext' in bot:
512 # skia:6575
513 match.append('~multipicturedraw_')
514
Ben Wagnerbb3e7ff2017-04-28 15:28:32 -0400515 if 'CommandBuffer' in bot:
516 # https://crbug.com/697030
517 match.append('~HalfFloatAlphaTextureTest')
518
Eric Boren4c7754c2017-04-10 08:19:10 -0400519 if 'AndroidOne' in bot: # skia:4711
520 match.append('~WritePixels')
521
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400522 if 'Chromecast' in bot: # skia:6581
523 match.append('~matrixconvolution')
524 match.append('~blur_image_filter')
525 match.append('~blur_0.01')
526 match.append('~GM_animated-image-blurs')
527
Eric Boren4c7754c2017-04-10 08:19:10 -0400528 if 'GalaxyS6' in bot:
529 match.append('~SpecialImage') # skia:6338
Brian Osmaneee3c092017-06-15 13:25:10 -0400530 match.append('~skbug6653') # skia:6653
Eric Boren4c7754c2017-04-10 08:19:10 -0400531
532 if 'GalaxyS7_G930A' in bot:
533 match.append('~WritePixels') # skia:6427
534
Eric Boren4c7754c2017-04-10 08:19:10 -0400535 if 'MSAN' in bot:
536 match.extend(['~Once', '~Shared']) # Not sure what's up with these tests.
537
538 if 'TSAN' in bot:
539 match.extend(['~ReadWriteAlpha']) # Flaky on TSAN-covered on nvidia bots.
540 match.extend(['~RGBA4444TextureTest', # Flakier than they are important.
541 '~RGB565TextureTest'])
542
Ben Wagnerdba0bc82017-12-11 13:27:27 -0500543 # By default, we test with GPU threading enabled, unless specifically
544 # disabled.
545 if 'NoGPUThreads' in bot:
546 args.extend(['--gpuThreads', '0'])
547
Greg Daniela86385d2017-06-05 11:34:29 -0400548 if 'Vulkan' in bot and 'Adreno530' in bot:
549 # skia:5777
550 match.extend(['~CopySurface'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400551
552 if 'Vulkan' in bot and 'NexusPlayer' in bot:
Ben Wagner407a3b72017-09-07 22:14:07 -0400553 # skia:6132
Ben Wagner0ecc2b7e2017-11-09 22:10:44 -0500554 match.append('~^tilemodes$')
Greg Daniel4c723832017-11-13 12:59:08 -0500555 match.append('~tilemodes_npot$')
Greg Daniel41886c82017-11-15 09:20:13 -0500556 match.append('~scaled_tilemodes$')
557 match.append('~emboss')
Ben Wagner0ecc2b7e2017-11-09 22:10:44 -0500558 match.append('~^bitmapfilters$')
559 match.append('~^shadertext$')
560 match.append('~^FullScreenClearWithLayers$') #skia:7191
561 match.append('~^GrDefaultPathRendererTest$') #skia:7244
562 match.append('~^GrMSAAPathRendererTest$') #skia:7244
Ben Wagner407a3b72017-09-07 22:14:07 -0400563 # skia:7018
Ben Wagner0ecc2b7e2017-11-09 22:10:44 -0500564 match.extend(['~^ClearOp$',
565 '~^ComposedImageFilterBounds_Gpu$',
566 '~^ImageEncode_Gpu$',
567 '~^ImageFilterFailAffectsTransparentBlack_Gpu$',
568 '~^ImageFilterZeroBlurSigma_Gpu$',
569 '~^ImageNewShader_GPU$',
570 '~^ImageReadPixels_Gpu$',
571 '~^ImageScalePixels_Gpu$',
572 '~^ReadWriteAlpha$',
573 '~^SpecialImage_DeferredGpu$',
574 '~^SpecialImage_Gpu$',
575 '~^SurfaceSemaphores$'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400576
Ben Wagner63457572017-12-21 10:49:58 -0500577 if 'Vulkan' in bot and api.vars.is_linux and 'IntelIris640' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400578 match.extend(['~VkHeapTests']) # skia:6245
579
Ben Wagnerb8427032017-11-18 19:04:25 -0500580 if 'Vulkan' in bot and api.vars.is_linux and 'IntelHD405' in bot:
Ben Wagner32eb5ba2017-11-20 13:46:20 -0500581 # skia:7322
Ben Wagnerb8427032017-11-18 19:04:25 -0500582 blacklist(['vk', 'gm', '_', 'skbug_257'])
583 match.append('~^ClearOp$')
Greg Danielec34a712017-12-06 12:06:26 -0500584 match.append('~^CopySurface$')
585 match.append('~^ImageNewShader_GPU$')
Ben Wagnerb8427032017-11-18 19:04:25 -0500586 match.append('~^InitialTextureClear$')
Greg Danielec34a712017-12-06 12:06:26 -0500587 match.append('~^PinnedImageTest$')
Ben Wagnerb8427032017-11-18 19:04:25 -0500588 match.append('~^ReadPixels_Gpu$')
589 match.append('~^ReadPixels_Texture$')
Greg Danielec34a712017-12-06 12:06:26 -0500590 match.append('~^SRGBReadWritePixels$')
Ben Wagnerb8427032017-11-18 19:04:25 -0500591 match.append('~^VkUploadPixelsTests$')
592 match.append('~^WritePixelsNonTexture_Gpu$')
593 match.append('~^WritePixels_Gpu$')
594 match.append('~^skbug6653$')
595
Ben Wagnerf1debdf2017-06-13 13:37:05 -0400596 if 'Vulkan' in bot and 'IntelIris540' in bot and 'Win' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400597 # skia:6398
598 blacklist(['vk', 'gm', '_', 'aarectmodes'])
599 blacklist(['vk', 'gm', '_', 'aaxfermodes'])
600 blacklist(['vk', 'gm', '_', 'arithmode'])
Brian Osmand52c6c22017-10-25 15:43:22 -0400601 blacklist(['vk', 'gm', '_', 'composeshader'])
602 blacklist(['vk', 'gm', '_', 'composeshader_alpha'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400603 blacklist(['vk', 'gm', '_', 'composeshader_bitmap'])
604 blacklist(['vk', 'gm', '_', 'composeshader_bitmap2'])
Greg Daniel0eef6742017-11-20 16:05:04 -0500605 blacklist(['vk', 'gm', '_', 'dont_clip_to_layer'])
Mike Klein78932122017-11-15 13:21:40 -0500606 blacklist(['vk', 'gm', '_', 'dftext'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400607 blacklist(['vk', 'gm', '_', 'drawregionmodes'])
608 blacklist(['vk', 'gm', '_', 'filterfastbounds'])
609 blacklist(['vk', 'gm', '_', 'fontcache'])
Mike Klein0030c5e2017-11-13 13:27:48 -0500610 blacklist(['vk', 'gm', '_', 'fontmgr_iter'])
611 blacklist(['vk', 'gm', '_', 'fontmgr_iter_factory'])
612 blacklist(['vk', 'gm', '_', 'fontmgr_match'])
613 blacklist(['vk', 'gm', '_', 'fontscaler'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400614 blacklist(['vk', 'gm', '_', 'fontscalerdistortable'])
615 blacklist(['vk', 'gm', '_', 'gammagradienttext'])
Mike Klein0030c5e2017-11-13 13:27:48 -0500616 blacklist(['vk', 'gm', '_', 'gammatext'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400617 blacklist(['vk', 'gm', '_', 'gradtext'])
618 blacklist(['vk', 'gm', '_', 'hairmodes'])
619 blacklist(['vk', 'gm', '_', 'imagefilters_xfermodes'])
620 blacklist(['vk', 'gm', '_', 'imagefiltersclipped'])
621 blacklist(['vk', 'gm', '_', 'imagefiltersgraph'])
622 blacklist(['vk', 'gm', '_', 'imagefiltersscaled'])
623 blacklist(['vk', 'gm', '_', 'imagefiltersstroked'])
624 blacklist(['vk', 'gm', '_', 'imagefilterstransformed'])
625 blacklist(['vk', 'gm', '_', 'imageresizetiled'])
626 blacklist(['vk', 'gm', '_', 'lcdblendmodes'])
627 blacklist(['vk', 'gm', '_', 'lcdoverlap'])
Mike Klein0030c5e2017-11-13 13:27:48 -0500628 blacklist(['vk', 'gm', '_', 'lcdtext'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400629 blacklist(['vk', 'gm', '_', 'lcdtextsize'])
630 blacklist(['vk', 'gm', '_', 'matriximagefilter'])
Mike Klein78932122017-11-15 13:21:40 -0500631 blacklist(['vk', 'gm', '_', 'mixedtextblobs'])
Greg Daniel744d3c52017-06-09 13:50:20 -0400632 blacklist(['vk', 'gm', '_', 'mixershader'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400633 blacklist(['vk', 'gm', '_', 'pictureimagefilter'])
634 blacklist(['vk', 'gm', '_', 'resizeimagefilter'])
635 blacklist(['vk', 'gm', '_', 'rotate_imagefilter'])
636 blacklist(['vk', 'gm', '_', 'savelayer_lcdtext'])
637 blacklist(['vk', 'gm', '_', 'srcmode'])
638 blacklist(['vk', 'gm', '_', 'surfaceprops'])
639 blacklist(['vk', 'gm', '_', 'textblobgeometrychange'])
640 blacklist(['vk', 'gm', '_', 'textbloblooper'])
641 blacklist(['vk', 'gm', '_', 'textblobmixedsizes'])
642 blacklist(['vk', 'gm', '_', 'textblobmixedsizes_df'])
643 blacklist(['vk', 'gm', '_', 'textblobrandomfont'])
644 blacklist(['vk', 'gm', '_', 'textfilter_color'])
645 blacklist(['vk', 'gm', '_', 'textfilter_image'])
Mike Klein0030c5e2017-11-13 13:27:48 -0500646 blacklist(['vk', 'gm', '_', 'typefacerendering'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400647 blacklist(['vk', 'gm', '_', 'varied_text_clipped_lcd'])
648 blacklist(['vk', 'gm', '_', 'varied_text_ignorable_clip_lcd'])
649 blacklist(['vk', 'gm', '_', 'xfermodeimagefilter'])
650 match.append('~ApplyGamma')
651 match.append('~ComposedImageFilterBounds_Gpu')
Matt Sarett77443972017-04-11 11:25:37 -0400652 match.append('~DeferredTextureImage')
Chris Dalton114a3c02017-05-26 15:17:19 -0600653 match.append('~GrMeshTest')
Eric Boren4c7754c2017-04-10 08:19:10 -0400654 match.append('~ImageFilterFailAffectsTransparentBlack_Gpu')
655 match.append('~ImageFilterZeroBlurSigma_Gpu')
656 match.append('~ImageNewShader_GPU')
657 match.append('~NewTextureFromPixmap')
658 match.append('~ReadPixels_Gpu')
659 match.append('~ReadPixels_Texture')
660 match.append('~ReadWriteAlpha')
Brian Osmane18ceb12017-06-15 16:04:45 -0400661 match.append('~skbug6653')
Eric Boren4c7754c2017-04-10 08:19:10 -0400662 match.append('~SRGBReadWritePixels')
663 match.append('~SpecialImage_DeferredGpu')
664 match.append('~SpecialImage_Gpu')
665 match.append('~WritePixels_Gpu')
Brian Osman33ea1362017-04-19 10:51:39 -0400666 match.append('~WritePixelsNonTexture_Gpu')
Eric Boren4c7754c2017-04-10 08:19:10 -0400667 match.append('~XfermodeImageFilterCroppedInput_Gpu')
Robert Phillips4c390b92017-10-30 13:23:38 -0400668 match.append('~GrDefaultPathRendererTest') #skia:7244
669 match.append('~GrMSAAPathRendererTest') #skia:7244
Eric Boren4c7754c2017-04-10 08:19:10 -0400670
Ben Wagner2040ed22017-11-22 11:22:22 -0500671 if (('RadeonR9M470X' in bot or 'RadeonHD7770' in bot) and 'ANGLE' in bot):
Robert Phillips435db422017-10-04 09:38:11 -0400672 # skia:7096
673 match.append('~PinnedImageTest')
674
Eric Boren4c7754c2017-04-10 08:19:10 -0400675 if 'IntelIris540' in bot and 'ANGLE' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400676 for config in ['angle_d3d9_es2', 'angle_d3d11_es2', 'angle_gl_es2']:
Brian Salomon6e554e32017-06-23 12:08:10 -0400677 # skia:6103
Eric Boren4c7754c2017-04-10 08:19:10 -0400678 blacklist([config, 'gm', '_', 'multipicturedraw_invpathclip_simple'])
679 blacklist([config, 'gm', '_', 'multipicturedraw_noclip_simple'])
680 blacklist([config, 'gm', '_', 'multipicturedraw_pathclip_simple'])
681 blacklist([config, 'gm', '_', 'multipicturedraw_rectclip_simple'])
682 blacklist([config, 'gm', '_', 'multipicturedraw_rrectclip_simple'])
Brian Salomon6e554e32017-06-23 12:08:10 -0400683 # skia:6141
684 blacklist([config, 'gm', '_', 'discard'])
Eric Boren4c7754c2017-04-10 08:19:10 -0400685
Ben Wagnerc6b2e6b2017-10-07 18:57:25 -0400686 if ('IntelIris6100' in bot or 'IntelHD4400' in bot) and 'ANGLE' in bot:
687 # skia:6857
688 blacklist(['angle_d3d9_es2', 'gm', '_', 'lighting'])
689
Kevin Lubickc14e5a72017-08-15 13:22:19 -0400690 if 'PowerVRGX6250' in bot:
691 match.append('~gradients_view_perspective_nodither') #skia:6972
692
Eric Boren4c7754c2017-04-10 08:19:10 -0400693 if blacklisted:
694 args.append('--blacklist')
695 args.extend(blacklisted)
696
697 if match:
698 args.append('--match')
699 args.extend(match)
700
701 # These bots run out of memory running RAW codec tests. Do not run them in
702 # parallel
Ben Wagner2040ed22017-11-22 11:22:22 -0500703 if 'NexusPlayer' in bot or 'Nexus5' in bot or 'Nexus9' in bot:
Eric Boren4c7754c2017-04-10 08:19:10 -0400704 args.append('--noRAW_threading')
705
Yuqian Li84be3ad2017-10-17 10:11:21 -0400706 if 'FSAA' in bot:
707 args.extend(['--analyticAA', 'false', '--deltaAA', 'false'])
708 if 'FAAA' in bot:
709 args.extend(['--deltaAA', 'false', '--forceAnalyticAA'])
710 if 'FDAA' in bot:
711 args.extend(['--deltaAA', '--forceDeltaAA'])
712
Mike Kleinc207da82017-11-10 14:24:34 -0500713 if 'NativeFonts' not in bot:
714 args.append('--nonativeFonts')
715
Mike Klein0c5fdcb2017-11-13 12:40:46 -0500716 if 'GDI' in bot:
717 args.append('--gdi')
718
Stephan Altmueller74dac542017-09-11 15:32:21 -0400719 # Let's make all bots produce verbose output by default.
720 args.append('--verbose')
Mike Kleinc9089062017-06-26 09:09:32 -0400721
Eric Boren4c7754c2017-04-10 08:19:10 -0400722 return args
723
724
725def key_params(api):
726 """Build a unique key from the builder name (as a list).
727
728 E.g. arch x86 gpu GeForce320M mode MacMini4.1 os Mac10.6
729 """
730 # Don't bother to include role, which is always Test.
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400731 blacklist = ['role', 'test_filter']
Eric Boren4c7754c2017-04-10 08:19:10 -0400732
733 flat = []
734 for k in sorted(api.vars.builder_cfg.keys()):
735 if k not in blacklist:
736 flat.append(k)
737 flat.append(api.vars.builder_cfg[k])
738 return flat
739
740
741def test_steps(api):
742 """Run the DM test."""
743 use_hash_file = False
744 if api.vars.upload_dm_results:
Eric Boren4c7754c2017-04-10 08:19:10 -0400745 host_dm_dir = str(api.vars.dm_dir)
746 device_dm_dir = str(api.flavor.device_dirs.dm_dir)
747 if host_dm_dir != device_dm_dir:
748 api.flavor.create_clean_device_dir(device_dm_dir)
749
750 # Obtain the list of already-generated hashes.
751 hash_filename = 'uninteresting_hashes.txt'
752
753 # Ensure that the tmp_dir exists.
Robert Iannucci8cd50412017-07-07 14:36:58 -0700754 api.run.run_once(api.file.ensure_directory,
755 'makedirs tmp_dir',
756 api.vars.tmp_dir)
Eric Boren4c7754c2017-04-10 08:19:10 -0400757
758 host_hashes_file = api.vars.tmp_dir.join(hash_filename)
759 hashes_file = api.flavor.device_path_join(
760 api.flavor.device_dirs.tmp_dir, hash_filename)
761 api.run(
762 api.python.inline,
763 'get uninteresting hashes',
764 program="""
765 import contextlib
766 import math
767 import socket
768 import sys
769 import time
770 import urllib2
771
Stephan Altmuellerc19ebc52017-05-30 16:39:17 -0400772 HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'
Eric Boren4c7754c2017-04-10 08:19:10 -0400773 RETRIES = 5
774 TIMEOUT = 60
775 WAIT_BASE = 15
776
777 socket.setdefaulttimeout(TIMEOUT)
778 for retry in range(RETRIES):
779 try:
780 with contextlib.closing(
781 urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:
782 hashes = w.read()
783 with open(sys.argv[1], 'w') as f:
784 f.write(hashes)
785 break
786 except Exception as e:
787 print 'Failed to get uninteresting hashes from %s:' % HASHES_URL
788 print e
789 if retry == RETRIES:
790 raise
791 waittime = WAIT_BASE * math.pow(2, retry)
792 print 'Retry in %d seconds.' % waittime
793 time.sleep(waittime)
794 """,
795 args=[host_hashes_file],
796 abort_on_failure=False,
797 fail_build_on_failure=False,
798 infra_step=True)
799
800 if api.path.exists(host_hashes_file):
801 api.flavor.copy_file_to_device(host_hashes_file, hashes_file)
802 use_hash_file = True
803
804 # Run DM.
805 properties = [
Eric Boren9a9e3872017-11-29 12:33:22 -0500806 'gitHash', api.vars.got_revision,
807 'builder', api.vars.builder_name,
808 'buildbucket_build_id', api.properties.get('buildbucket_build_id', ''),
Eric Boren4c7754c2017-04-10 08:19:10 -0400809 ]
810 if api.vars.is_trybot:
811 properties.extend([
812 'issue', api.vars.issue,
813 'patchset', api.vars.patchset,
814 'patch_storage', api.vars.patch_storage,
815 ])
Eric Borenf9aa9e52017-04-10 09:56:10 -0400816 properties.extend(['swarming_bot_id', api.vars.swarming_bot_id])
817 properties.extend(['swarming_task_id', api.vars.swarming_task_id])
Eric Boren4c7754c2017-04-10 08:19:10 -0400818
819 args = [
820 'dm',
Eric Boren4c7754c2017-04-10 08:19:10 -0400821 '--resourcePath', api.flavor.device_dirs.resource_dir,
822 '--skps', api.flavor.device_dirs.skp_dir,
823 '--images', api.flavor.device_path_join(
824 api.flavor.device_dirs.images_dir, 'dm'),
825 '--colorImages', api.flavor.device_path_join(
826 api.flavor.device_dirs.images_dir, 'colorspace'),
827 '--nameByHash',
828 '--properties'
829 ] + properties
830
831 args.extend(['--svgs', api.flavor.device_dirs.svg_dir])
832
833 args.append('--key')
834 args.extend(key_params(api))
835 if use_hash_file:
836 args.extend(['--uninterestingHashesFile', hashes_file])
837 if api.vars.upload_dm_results:
838 args.extend(['--writePath', api.flavor.device_dirs.dm_dir])
839
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400840 if 'Chromecast' in api.vars.builder_cfg.get('os', ''):
841 # Due to limited disk space, we only deal with skps and one image.
842 args = [
843 'dm',
844 '--undefok', # This helps branches that may not know new flags.
845 '--resourcePath', api.flavor.device_dirs.resource_dir,
846 '--skps', api.flavor.device_dirs.skp_dir,
847 '--images', api.flavor.device_path_join(
848 api.flavor.device_dirs.resource_dir, 'color_wheel.jpg'),
849 ]
850
Eric Boren89cd3572017-06-28 13:50:22 -0400851 args.extend(dm_flags(api, api.vars.builder_name))
Eric Boren4c7754c2017-04-10 08:19:10 -0400852
Eric Boren4c7754c2017-04-10 08:19:10 -0400853 # See skia:2789.
Ben Wagner37491d22017-12-13 13:00:47 -0500854 if 'AbandonGpuContext' in api.vars.extra_tokens:
Eric Boren4c7754c2017-04-10 08:19:10 -0400855 args.append('--abandonGpuContext')
Ben Wagner37491d22017-12-13 13:00:47 -0500856 if 'PreAbandonGpuContext' in api.vars.extra_tokens:
Eric Boren4c7754c2017-04-10 08:19:10 -0400857 args.append('--preAbandonGpuContext')
Ben Wagner37491d22017-12-13 13:00:47 -0500858 if 'ReleaseAndAbandonGpuContext' in api.vars.extra_tokens:
Eric Boren6ec17e32017-04-26 14:25:29 -0400859 args.append('--releaseAndAbandonGpuContext')
Eric Boren4c7754c2017-04-10 08:19:10 -0400860
Ben Wagner5655ba42017-10-02 10:48:32 -0400861 api.run(api.flavor.step, 'dm', cmd=args, abort_on_failure=False)
Eric Boren4c7754c2017-04-10 08:19:10 -0400862
863 if api.vars.upload_dm_results:
864 # Copy images and JSON to host machine if needed.
865 api.flavor.copy_directory_contents_to_host(
866 api.flavor.device_dirs.dm_dir, api.vars.dm_dir)
867
868
borenet1ed2ae42016-07-26 11:52:17 -0700869def RunSteps(api):
Eric Boren4c7754c2017-04-10 08:19:10 -0400870 api.core.setup()
Robert Iannucci297a7ef2017-05-12 19:09:38 -0700871 env = {}
Eric Boren4c7754c2017-04-10 08:19:10 -0400872 if 'iOS' in api.vars.builder_name:
873 env['IOS_BUNDLE_ID'] = 'com.google.dm'
Stephan Altmueller63e843d2017-04-25 11:38:38 -0400874 env['IOS_MOUNT_POINT'] = api.vars.slave_dir.join('mnt_iosdevice')
Robert Iannucci297a7ef2017-05-12 19:09:38 -0700875 with api.context(env=env):
Eric Boren4c7754c2017-04-10 08:19:10 -0400876 try:
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400877 if 'Chromecast' in api.vars.builder_name:
878 api.flavor.install(resources=True, skps=True)
879 else:
880 api.flavor.install_everything()
Eric Boren4c7754c2017-04-10 08:19:10 -0400881 test_steps(api)
882 finally:
883 api.flavor.cleanup_steps()
884 api.run.check_failure()
885
886
Eric Borenf9aa9e52017-04-10 09:56:10 -0400887TEST_BUILDERS = [
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400888 'Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android',
889 'Test-Android-Clang-GalaxyS6-GPU-MaliT760-arm64-Debug-All-Android',
890 'Test-Android-Clang-GalaxyS7_G930A-GPU-Adreno530-arm64-Debug-All-Android',
891 'Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-All-Android',
892 'Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-All-Android_CCPR',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400893 'Test-Android-Clang-Nexus5-GPU-Adreno330-arm-Release-All-Android',
Ben Wagnerdba0bc82017-12-11 13:27:27 -0500894 ('Test-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Debug-All'
895 '-Android_NoGPUThreads'),
Ben Wagner5cf6d322017-12-07 10:23:07 -0500896 'Test-Android-Clang-Nexus7-CPU-Tegra3-arm-Release-All-Android',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400897 'Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android',
898 'Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-All-Android',
899 'Test-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-All-Android_Vulkan',
Ben Wagner52423f32017-12-07 10:17:13 -0500900 'Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android_CCPR',
901 'Test-Android-Clang-Pixel-GPU-Adreno530-arm64-Debug-All-Android_Vulkan',
Kevin Lubickd7af1db2017-11-02 12:03:22 -0400902 'Test-ChromeOS-Clang-ASUSChromebookFlipC100-GPU-MaliT764-arm-Debug-All',
903 ('Test-ChromeOS-Clang-AcerChromebookR13Convertible-GPU-PowerVRGX6250-'
904 'arm-Debug-All'),
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400905 'Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release-All',
906 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN',
Kevin Lubick32f318b2017-10-17 13:40:52 -0400907 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-shard_00_10-Coverage',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400908 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN',
909 ('Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All'
Ben Wagner9fb285e2017-10-02 16:53:07 -0400910 '-SK_USE_DISCARDABLE_SCALEDIMAGECACHE'),
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400911 ('Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All'
Ben Wagner6e0a6b32017-09-26 14:11:15 -0400912 '-SK_FORCE_RASTER_PIPELINE_BLITTER'),
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400913 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN',
914 'Test-Debian9-GCC-GCE-CPU-AVX2-x86-Debug-All',
915 'Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Debug-All',
916 'Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Release-All',
917 'Test-Mac-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-All-CommandBuffer',
918 'Test-Ubuntu16-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Debug-All',
Ben Wagnerb8427032017-11-18 19:04:25 -0500919 'Test-Ubuntu16-Clang-NUC5PPYH-GPU-IntelHD405-x86_64-Release-All-Vulkan',
Ben Wagner63457572017-12-21 10:49:58 -0500920 'Test-Ubuntu16-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-Vulkan',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400921 'Test-Ubuntu16-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug-All',
Ben Wagner9f553932017-11-27 22:18:12 -0500922 'Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-Vulkan_Coverage',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400923 ('Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All'
Ben Wagner6e0a6b32017-09-26 14:11:15 -0400924 '-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41'),
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400925 ('Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All'
Ben Wagner6e0a6b32017-09-26 14:11:15 -0400926 '-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41'),
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400927 ('Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-All'
Ben Wagner6e0a6b32017-09-26 14:11:15 -0400928 '-Valgrind_SK_CPU_LIMIT_SSE41'),
Ben Wagnerb2fd61a2017-10-23 16:01:44 -0400929 'Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400930 'Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-Vulkan',
931 ('Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Release-All'
Ben Wagner6e0a6b32017-09-26 14:11:15 -0400932 '-ReleaseAndAbandonGpuContext'),
Ben Wagnerfd66b5f2017-11-15 15:16:27 -0500933 'Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts',
934 'Test-Win10-Clang-NUC5i7RYH-CPU-AVX2-x86_64-Debug-All-NativeFonts_GDI',
Ben Wagnerb2fd61a2017-10-23 16:01:44 -0400935 'Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400936 'Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-Vulkan',
Ben Wagnerb2fd61a2017-10-23 16:01:44 -0400937 'Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Release-All-ANGLE',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400938 'Test-Win10-Clang-ShuttleA-GPU-GTX660-x86_64-Debug-All-Vulkan',
Ben Wagnerb2fd61a2017-10-23 16:01:44 -0400939 'Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE',
Brian Osmanf4a95bc2017-11-06 14:08:54 -0500940 'Test-Win10-Clang-ZBOX-GPU-GTX1070-x86_64-Debug-All',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400941 'Test-Win10-Clang-ZBOX-GPU-GTX1070-x86_64-Debug-All-Vulkan',
Ben Wagner78935c22017-11-15 13:21:03 -0500942 'Test-Win2016-Clang-GCE-CPU-AVX2-x86_64-Debug-All-FAAA',
943 'Test-Win2016-Clang-GCE-CPU-AVX2-x86_64-Debug-All-FDAA',
944 'Test-Win2016-Clang-GCE-CPU-AVX2-x86_64-Debug-All-FSAA',
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400945 'Test-Win8-MSVC-Golo-CPU-AVX-x86-Debug-All',
946 'Test-iOS-Clang-iPadPro-GPU-GT7800-arm64-Release-All',
Eric Borenf9aa9e52017-04-10 09:56:10 -0400947]
borenet1ed2ae42016-07-26 11:52:17 -0700948
949
950def GenTests(api):
Eric Borenf9aa9e52017-04-10 09:56:10 -0400951 for builder in TEST_BUILDERS:
952 test = (
953 api.test(builder) +
954 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -0500955 buildbucket_build_id='123454321',
Eric Borenf9aa9e52017-04-10 09:56:10 -0400956 revision='abc123',
957 path_config='kitchen',
958 swarm_out_dir='[SWARM_OUT_DIR]') +
959 api.path.exists(
960 api.path['start_dir'].join('skia'),
961 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
962 'skimage', 'VERSION'),
963 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
964 'skp', 'VERSION'),
965 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
966 'svg', 'VERSION'),
967 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
Ben Wagnerf835c222017-04-30 11:14:51 -0400968 ) +
969 api.step_data('get swarming bot id',
970 stdout=api.raw_io.output('skia-bot-123')) +
971 api.step_data('get swarming task id',
972 stdout=api.raw_io.output('123456'))
Eric Borenf9aa9e52017-04-10 09:56:10 -0400973 )
Eric Borenf9aa9e52017-04-10 09:56:10 -0400974 if 'Win' in builder:
975 test += api.platform('win', 64)
Eric Boren4c7754c2017-04-10 08:19:10 -0400976
Kevin Lubick2dafbd72017-08-31 10:39:05 -0400977 if 'Chromecast' in builder:
978 test += api.step_data(
979 'read chromecast ip',
980 stdout=api.raw_io.output('192.168.1.2:5555'))
981
Eric Borenf9aa9e52017-04-10 09:56:10 -0400982 if 'ChromeOS' in builder:
983 test += api.step_data(
984 'read chromeos ip',
985 stdout=api.raw_io.output('{"user_ip":"foo@127.0.0.1"}'))
Eric Boren4c7754c2017-04-10 08:19:10 -0400986
Eric Borenf9aa9e52017-04-10 09:56:10 -0400987 yield test
Eric Boren4c7754c2017-04-10 08:19:10 -0400988
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400989 builder = 'Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Release-All'
Kevin Lubickfe079d42017-04-12 08:31:48 -0400990 yield (
991 api.test('trybot') +
992 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -0500993 buildbucket_build_id='123454321',
Kevin Lubickfe079d42017-04-12 08:31:48 -0400994 revision='abc123',
995 path_config='kitchen',
996 swarm_out_dir='[SWARM_OUT_DIR]') +
997 api.properties(patch_storage='gerrit') +
998 api.properties.tryserver(
999 buildername=builder,
1000 gerrit_project='skia',
1001 gerrit_url='https://skia-review.googlesource.com/',
1002 )+
1003 api.path.exists(
1004 api.path['start_dir'].join('skia'),
1005 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1006 'skimage', 'VERSION'),
1007 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1008 'skp', 'VERSION'),
1009 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1010 'svg', 'VERSION'),
1011 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
1012 )
1013 )
1014
Kevin Lubick9ef6de72017-10-15 21:05:58 -04001015 builder = 'Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Debug-All'
borenet1ed2ae42016-07-26 11:52:17 -07001016 yield (
Eric Boren4c7754c2017-04-10 08:19:10 -04001017 api.test('failed_dm') +
1018 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -05001019 buildbucket_build_id='123454321',
borenet1ed2ae42016-07-26 11:52:17 -07001020 revision='abc123',
1021 path_config='kitchen',
1022 swarm_out_dir='[SWARM_OUT_DIR]') +
1023 api.path.exists(
Ravi Mistry9bcca6a2016-11-21 16:06:19 -05001024 api.path['start_dir'].join('skia'),
1025 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
Eric Boren4c7754c2017-04-10 08:19:10 -04001026 'skimage', 'VERSION'),
Ravi Mistry9bcca6a2016-11-21 16:06:19 -05001027 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
Eric Boren4c7754c2017-04-10 08:19:10 -04001028 'skp', 'VERSION'),
Ravi Mistry9bcca6a2016-11-21 16:06:19 -05001029 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
Eric Boren4c7754c2017-04-10 08:19:10 -04001030 'svg', 'VERSION'),
Ravi Mistry9bcca6a2016-11-21 16:06:19 -05001031 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
Eric Boren4c7754c2017-04-10 08:19:10 -04001032 ) +
1033 api.step_data('symbolized dm', retcode=1)
1034 )
1035
Kevin Lubick9ef6de72017-10-15 21:05:58 -04001036 builder = 'Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android'
Eric Boren4c7754c2017-04-10 08:19:10 -04001037 yield (
1038 api.test('failed_get_hashes') +
1039 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -05001040 buildbucket_build_id='123454321',
Eric Boren4c7754c2017-04-10 08:19:10 -04001041 revision='abc123',
1042 path_config='kitchen',
1043 swarm_out_dir='[SWARM_OUT_DIR]') +
1044 api.path.exists(
1045 api.path['start_dir'].join('skia'),
1046 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1047 'skimage', 'VERSION'),
1048 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1049 'skp', 'VERSION'),
1050 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1051 'svg', 'VERSION'),
1052 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
1053 ) +
1054 api.step_data('get uninteresting hashes', retcode=1)
1055 )
1056
Kevin Lubick9ef6de72017-10-15 21:05:58 -04001057 builder = ('Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-'
1058 'Debug-All-Android')
Eric Boren4c7754c2017-04-10 08:19:10 -04001059 yield (
1060 api.test('failed_push') +
1061 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -05001062 buildbucket_build_id='123454321',
Eric Boren4c7754c2017-04-10 08:19:10 -04001063 revision='abc123',
1064 path_config='kitchen',
1065 swarm_out_dir='[SWARM_OUT_DIR]') +
1066 api.path.exists(
1067 api.path['start_dir'].join('skia'),
1068 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1069 'skimage', 'VERSION'),
1070 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1071 'skp', 'VERSION'),
1072 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1073 'svg', 'VERSION'),
1074 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
1075 ) +
1076 api.step_data('push [START_DIR]/skia/resources/* '+
1077 '/sdcard/revenge_of_the_skiabot/resources', retcode=1)
1078 )
1079
Ben Wagner1a2b3f02017-10-26 15:13:38 -04001080 builder = 'Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android'
Eric Boren4c7754c2017-04-10 08:19:10 -04001081 yield (
1082 api.test('failed_pull') +
1083 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -05001084 buildbucket_build_id='123454321',
Eric Boren4c7754c2017-04-10 08:19:10 -04001085 revision='abc123',
1086 path_config='kitchen',
1087 swarm_out_dir='[SWARM_OUT_DIR]') +
1088 api.path.exists(
1089 api.path['start_dir'].join('skia'),
1090 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1091 'skimage', 'VERSION'),
1092 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1093 'skp', 'VERSION'),
1094 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1095 'svg', 'VERSION'),
1096 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
1097 ) +
1098 api.step_data('dm', retcode=1) +
1099 api.step_data('pull /sdcard/revenge_of_the_skiabot/dm_out '+
1100 '[CUSTOM_[SWARM_OUT_DIR]]/dm', retcode=1)
borenetbfa5b452016-10-19 10:13:32 -07001101 )
Eric Boren053d7a42017-09-15 08:35:31 -04001102
1103 yield (
Kevin Lubick451b7432017-09-15 14:44:12 -04001104 api.test('internal_bot_1') +
Eric Boren053d7a42017-09-15 08:35:31 -04001105 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -05001106 buildbucket_build_id='123454321',
Eric Boren053d7a42017-09-15 08:35:31 -04001107 revision='abc123',
1108 path_config='kitchen',
1109 swarm_out_dir='[SWARM_OUT_DIR]',
Kevin Lubick451b7432017-09-15 14:44:12 -04001110 internal_hardware_label=1) +
Eric Boren053d7a42017-09-15 08:35:31 -04001111 api.path.exists(
1112 api.path['start_dir'].join('skia'),
1113 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1114 'skimage', 'VERSION'),
1115 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1116 'skp', 'VERSION'),
1117 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1118 'svg', 'VERSION'),
1119 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
1120 )
1121 )
Kevin Lubickbd27d1d2017-10-13 08:01:49 -04001122
1123 yield (
1124 api.test('internal_bot_2') +
1125 api.properties(buildername=builder,
Eric Boren9a9e3872017-11-29 12:33:22 -05001126 buildbucket_build_id='123454321',
Kevin Lubickbd27d1d2017-10-13 08:01:49 -04001127 revision='abc123',
1128 path_config='kitchen',
1129 swarm_out_dir='[SWARM_OUT_DIR]',
1130 internal_hardware_label=2) +
1131 api.path.exists(
1132 api.path['start_dir'].join('skia'),
1133 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1134 'skimage', 'VERSION'),
1135 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1136 'skp', 'VERSION'),
1137 api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
1138 'svg', 'VERSION'),
1139 api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -05001140 )
Kevin Lubickbd27d1d2017-10-13 08:01:49 -04001141 )