diff options
Diffstat (limited to 'infra/bots/recipes')
-rw-r--r-- | infra/bots/recipes/perf.py | 2 | ||||
-rw-r--r-- | infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie.json | 478 | ||||
-rw-r--r-- | infra/bots/recipes/test.py | 35 |
3 files changed, 506 insertions, 9 deletions
diff --git a/infra/bots/recipes/perf.py b/infra/bots/recipes/perf.py index ed3e82dcbf..9eadca5c5f 100644 --- a/infra/bots/recipes/perf.py +++ b/infra/bots/recipes/perf.py @@ -352,7 +352,7 @@ def RunSteps(api): if 'Chromecast' in api.vars.builder_name: api.flavor.install(resources=True, skps=True) else: - api.flavor.install_everything() + api.flavor.install(skps=True, images=True, svgs=True, resources=True) perf_steps(api) finally: api.flavor.cleanup_steps() diff --git a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie.json b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie.json new file mode 100644 index 0000000000..c55196ecba --- /dev/null +++ b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie.json @@ -0,0 +1,478 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "ensure-directory", + "--mode", + "0777", + "[START_DIR]/tmp" + ], + "infra_step": true, + "name": "makedirs tmp_dir" + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[START_DIR]/skia/infra/bots/assets/lottie-samples/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get lottie-samples VERSION" + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "42", + "[START_DIR]/tmp/LOTTIE_VERSION" + ], + "infra_step": true, + "name": "write LOTTIE_VERSION" + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "rmtree", + "[START_DIR]/test" + ], + "infra_step": true, + "name": "rmtree test" + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "ensure-directory", + "--mode", + "0777", + "[START_DIR]/test" + ], + "infra_step": true, + "name": "makedirs test" + }, + { + "cmd": [ + "python", + "-u", + "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n", + "[START_DIR]/tmp/uninteresting_hashes.txt" + ], + "env": { + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]" + }, + "infra_step": true, + "name": "get uninteresting hashes", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", + "@@@STEP_LOG_LINE@python.inline@import math@@@", + "@@@STEP_LOG_LINE@python.inline@import socket@@@", + "@@@STEP_LOG_LINE@python.inline@import sys@@@", + "@@@STEP_LOG_LINE@python.inline@import time@@@", + "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@", + "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", + "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", + "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", + "@@@STEP_LOG_LINE@python.inline@ try:@@@", + "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@", + "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", + "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@", + "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[1], 'w') as f:@@@", + "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@", + "@@@STEP_LOG_LINE@python.inline@ break@@@", + "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@", + "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", + "@@@STEP_LOG_LINE@python.inline@ print e@@@", + "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@", + "@@@STEP_LOG_LINE@python.inline@ raise@@@", + "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", + "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@", + "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n" + ], + "name": "get swarming bot id", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n" + ], + "name": "get swarming task id", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py", + "[START_DIR]", + "catchsegv", + "[START_DIR]/build/dm", + "--resourcePath", + "[START_DIR]/skia/resources", + "--skps", + "[START_DIR]/skp", + "--images", + "[START_DIR]/skimage/dm", + "--colorImages", + "[START_DIR]/skimage/colorspace", + "--nameByHash", + "--properties", + "gitHash", + "abc123", + "builder", + "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie", + "buildbucket_build_id", + "123454321", + "swarming_bot_id", + "skia-bot-123", + "swarming_task_id", + "123456", + "--svgs", + "[START_DIR]/svg", + "--lotties", + "[START_DIR]/lottie-samples", + "--key", + "arch", + "x86_64", + "compiler", + "Clang", + "configuration", + "Release", + "cpu_or_gpu", + "CPU", + "cpu_or_gpu_value", + "AVX2", + "extra_config", + "Lottie", + "model", + "GCE", + "os", + "Debian9", + "--uninterestingHashesFile", + "[START_DIR]/tmp/uninteresting_hashes.txt", + "--writePath", + "[START_DIR]/[SWARM_OUT_DIR]", + "--dont_write", + "pdf", + "--randomProcessorTest", + "--nogpu", + "--config", + "8888", + "pdf", + "g8", + "565", + "lite-8888", + "gbr-8888", + "f16", + "srgb", + "esrgb", + "narrow", + "enarrow", + "serialize-8888", + "tiles_rt-8888", + "pic-8888", + "--src", + "lottie", + "--blacklist", + "f16", + "_", + "_", + "dstreadshuffle", + "gbr-8888", + "image", + "_", + "_", + "gbr-8888", + "colorImage", + "_", + "_", + "g8", + "image", + "_", + "_", + "g8", + "colorImage", + "_", + "_", + "serialize-8888", + "gm", + "_", + "bleed_image", + "serialize-8888", + "gm", + "_", + "c_gms", + "serialize-8888", + "gm", + "_", + "colortype", + "serialize-8888", + "gm", + "_", + "colortype_xfermodes", + "serialize-8888", + "gm", + "_", + "drawfilter", + "serialize-8888", + "gm", + "_", + "fontmgr_bounds_0.75_0", + "serialize-8888", + "gm", + "_", + "fontmgr_bounds_1_-0.25", + "serialize-8888", + "gm", + "_", + "fontmgr_bounds", + "serialize-8888", + "gm", + "_", + "fontmgr_match", + "serialize-8888", + "gm", + "_", + "fontmgr_iter", + "serialize-8888", + "gm", + "_", + "imagemasksubset", + "serialize-8888", + "gm", + "_", + "bitmapfilters", + "serialize-8888", + "gm", + "_", + "bitmapshaders", + "serialize-8888", + "gm", + "_", + "bleed", + "serialize-8888", + "gm", + "_", + "bleed_alpha_bmp", + "serialize-8888", + "gm", + "_", + "bleed_alpha_bmp_shader", + "serialize-8888", + "gm", + "_", + "convex_poly_clip", + "serialize-8888", + "gm", + "_", + "extractalpha", + "serialize-8888", + "gm", + "_", + "filterbitmap_checkerboard_32_32_g8", + "serialize-8888", + "gm", + "_", + "filterbitmap_image_mandrill_64", + "serialize-8888", + "gm", + "_", + "shadows", + "serialize-8888", + "gm", + "_", + "simpleaaclip_aaclip", + "serialize-8888", + "gm", + "_", + "composeshader_bitmap", + "serialize-8888", + "gm", + "_", + "scaled_tilemodes_npot", + "serialize-8888", + "gm", + "_", + "scaled_tilemodes", + "serialize-8888", + "gm", + "_", + "typefacerendering_pfaMac", + "serialize-8888", + "gm", + "_", + "parsedpaths", + "serialize-8888", + "gm", + "_", + "ImageGeneratorExternal_rect", + "serialize-8888", + "gm", + "_", + "ImageGeneratorExternal_shader", + "serialize-8888", + "gm", + "_", + "shadow_utils", + "serialize-8888", + "gm", + "_", + "persp_images", + "serialize-8888", + "gm", + "_", + "all_bitmap_configs", + "serialize-8888", + "gm", + "_", + "makecolorspace", + "serialize-8888", + "gm", + "_", + "analytic_antialias_convex", + "serialize-8888", + "gm", + "_", + "bleed_alpha_image", + "serialize-8888", + "gm", + "_", + "bleed_alpha_image_shader", + "pic-8888", + "gm", + "_", + "drawfilter", + "lite-8888", + "gm", + "_", + "drawfilter", + "pic-8888", + "gm", + "_", + "image-cacherator-from-picture", + "serialize-8888", + "gm", + "_", + "image-cacherator-from-picture", + "pic-8888", + "gm", + "_", + "image-cacherator-from-raster", + "serialize-8888", + "gm", + "_", + "image-cacherator-from-raster", + "pic-8888", + "gm", + "_", + "image-cacherator-from-ctable", + "serialize-8888", + "gm", + "_", + "image-cacherator-from-ctable", + "pic-8888", + "gm", + "_", + "gamut", + "lite-8888", + "gm", + "_", + "gamut", + "serialize-8888", + "gm", + "_", + "gamut", + "pic-8888", + "gm", + "_", + "complexclip4_bw", + "lite-8888", + "gm", + "_", + "complexclip4_bw", + "serialize-8888", + "gm", + "_", + "complexclip4_bw", + "pic-8888", + "gm", + "_", + "complexclip4_aa", + "lite-8888", + "gm", + "_", + "complexclip4_aa", + "serialize-8888", + "gm", + "_", + "complexclip4_aa", + "tiles_rt-8888", + "gm", + "_", + "complexclip4_bw", + "tiles_rt-8888", + "gm", + "_", + "complexclip4_aa", + "--nonativeFonts", + "--verbose" + ], + "cwd": "[START_DIR]/skia", + "env": { + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]" + }, + "name": "symbolized dm" + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipes/test.py b/infra/bots/recipes/test.py index c95e92a9d2..8ef50581a2 100644 --- a/infra/bots/recipes/test.py +++ b/infra/bots/recipes/test.py @@ -11,7 +11,6 @@ DEPS = [ 'flavor', 'recipe_engine/context', 'recipe_engine/file', - 'recipe_engine/json', 'recipe_engine/path', 'recipe_engine/platform', 'recipe_engine/properties', @@ -301,7 +300,7 @@ def dm_flags(api, bot): args.extend(configs) # Run tests, gms, and image decoding tests everywhere. - args.extend('--src tests gm image colorImage svg skp'.split(' ')) + args.extend('--src tests gm image lottie colorImage svg skp'.split(' ')) if api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU': # Don't run the 'svgparse_*' svgs on GPU. blacklist('_ svg _ svgparse_') @@ -325,15 +324,30 @@ def dm_flags(api, bot): args.remove('image') args.remove('colorImage') + def remove_from_args(arg): + if arg in args: + args.remove(arg) + if 'DDL' in bot: # The DDL bots just render the large skps and the gms - args.remove('tests') - args.remove('image') - args.remove('colorImage') - args.remove('svg') + remove_from_args('tests') + remove_from_args('image') + remove_from_args('colorImage') + remove_from_args('svg') else: # Currently, only the DDL bots render skps - args.remove('skp') + remove_from_args('skp') + + if 'Lottie' in api.vars.builder_cfg.get('extra_config', ''): + # Only run the lotties on Lottie bots. + remove_from_args('tests') + remove_from_args('gm') + remove_from_args('image') + remove_from_args('colorImage') + remove_from_args('svg') + remove_from_args('skp') + else: + remove_from_args('lottie') # TODO: ??? blacklist('f16 _ _ dstreadshuffle') @@ -948,6 +962,8 @@ def test_steps(api): ] + properties args.extend(['--svgs', api.flavor.device_dirs.svg_dir]) + if 'Lottie' in api.vars.builder_cfg.get('extra_config', ''): + args.extend(['--lotties', api.flavor.device_dirs.lotties_dir]) args.append('--key') args.extend(key_params(api)) @@ -988,8 +1004,10 @@ def RunSteps(api): try: if 'Chromecast' in api.vars.builder_name: api.flavor.install(resources=True, skps=True) + elif 'Lottie' in api.vars.builder_name: + api.flavor.install(resources=True, lotties=True) else: - api.flavor.install_everything() + api.flavor.install(skps=True, images=True, svgs=True, resources=True) test_steps(api) finally: api.flavor.cleanup_steps() @@ -1020,6 +1038,7 @@ TEST_BUILDERS = [ ('Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All' '-SK_USE_DISCARDABLE_SCALEDIMAGECACHE'), 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-T8888', + 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie', ('Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All' '-SK_FORCE_RASTER_PIPELINE_BLITTER'), 'Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN', |