1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors. All rights reserved. 2*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard Worker# Recipe which runs the PathKit tests using docker 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard WorkerPYTHON_VERSION_COMPATIBILITY = "PY3" 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard WorkerDEPS = [ 10*c8dee2aaSAndroid Build Coastguard Worker 'checkout', 11*c8dee2aaSAndroid Build Coastguard Worker 'docker', 12*c8dee2aaSAndroid Build Coastguard Worker 'env', 13*c8dee2aaSAndroid Build Coastguard Worker 'flavor', 14*c8dee2aaSAndroid Build Coastguard Worker 'gold_upload', 15*c8dee2aaSAndroid Build Coastguard Worker 'infra', 16*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/file', 17*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/path', 18*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/properties', 19*c8dee2aaSAndroid Build Coastguard Worker 'recipe_engine/step', 20*c8dee2aaSAndroid Build Coastguard Worker 'run', 21*c8dee2aaSAndroid Build Coastguard Worker 'vars', 22*c8dee2aaSAndroid Build Coastguard Worker] 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard WorkerDOCKER_IMAGE = 'gcr.io/skia-public/gold-karma-chrome-tests:87.0.4280.88_v2' 26*c8dee2aaSAndroid Build Coastguard WorkerINNER_KARMA_SCRIPT = 'skia/infra/pathkit/test_pathkit.sh' 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Workerdef RunSteps(api): 30*c8dee2aaSAndroid Build Coastguard Worker api.vars.setup() 31*c8dee2aaSAndroid Build Coastguard Worker api.flavor.setup("dm") 32*c8dee2aaSAndroid Build Coastguard Worker checkout_root = api.path.start_dir 33*c8dee2aaSAndroid Build Coastguard Worker out_dir = api.vars.swarming_out_dir 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker # The karma script is configured to look in ./npm-(asmjs|wasm)/bin/test/ for 36*c8dee2aaSAndroid Build Coastguard Worker # the test files to load, so we must copy them there (see Set up for docker). 37*c8dee2aaSAndroid Build Coastguard Worker copy_dest = checkout_root.joinpath('skia', 'modules', 'pathkit', 38*c8dee2aaSAndroid Build Coastguard Worker 'build', 'wasm') 39*c8dee2aaSAndroid Build Coastguard Worker if 'asmjs' in api.vars.builder_name: 40*c8dee2aaSAndroid Build Coastguard Worker copy_dest = checkout_root.joinpath('skia', 'modules', 'pathkit', 41*c8dee2aaSAndroid Build Coastguard Worker 'build', 'asmjs') 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Worker base_dir = api.vars.build_dir 44*c8dee2aaSAndroid Build Coastguard Worker bundle_name = 'pathkit.wasm' 45*c8dee2aaSAndroid Build Coastguard Worker if 'asmjs' in api.vars.builder_name: 46*c8dee2aaSAndroid Build Coastguard Worker # release mode has a .js.mem file that needs to come with. 47*c8dee2aaSAndroid Build Coastguard Worker # debug mode has an optional .map file, but we can omit that for tests 48*c8dee2aaSAndroid Build Coastguard Worker if 'Debug' in api.vars.builder_name: 49*c8dee2aaSAndroid Build Coastguard Worker bundle_name = '' 50*c8dee2aaSAndroid Build Coastguard Worker else: 51*c8dee2aaSAndroid Build Coastguard Worker bundle_name = 'pathkit.js.mem' 52*c8dee2aaSAndroid Build Coastguard Worker 53*c8dee2aaSAndroid Build Coastguard Worker copies = [{ 54*c8dee2aaSAndroid Build Coastguard Worker 'src': base_dir.joinpath('pathkit.js'), 55*c8dee2aaSAndroid Build Coastguard Worker 'dst': copy_dest.joinpath('pathkit.js'), 56*c8dee2aaSAndroid Build Coastguard Worker }] 57*c8dee2aaSAndroid Build Coastguard Worker if bundle_name: 58*c8dee2aaSAndroid Build Coastguard Worker copies.append({ 59*c8dee2aaSAndroid Build Coastguard Worker 'src': base_dir.joinpath(bundle_name), 60*c8dee2aaSAndroid Build Coastguard Worker 'dst': copy_dest.joinpath(bundle_name), 61*c8dee2aaSAndroid Build Coastguard Worker }) 62*c8dee2aaSAndroid Build Coastguard Worker recursive_read = [checkout_root.joinpath('skia')] 63*c8dee2aaSAndroid Build Coastguard Worker 64*c8dee2aaSAndroid Build Coastguard Worker docker_args = None 65*c8dee2aaSAndroid Build Coastguard Worker if 'asmjs' in api.vars.builder_name: 66*c8dee2aaSAndroid Build Coastguard Worker docker_args = ['--env', 'ASM_JS=1'] 67*c8dee2aaSAndroid Build Coastguard Worker 68*c8dee2aaSAndroid Build Coastguard Worker args = [ 69*c8dee2aaSAndroid Build Coastguard Worker '--builder', api.vars.builder_name, 70*c8dee2aaSAndroid Build Coastguard Worker '--git_hash', api.properties['revision'], 71*c8dee2aaSAndroid Build Coastguard Worker '--buildbucket_build_id', api.properties.get('buildbucket_build_id', ''), 72*c8dee2aaSAndroid Build Coastguard Worker '--browser', 'Chrome', 73*c8dee2aaSAndroid Build Coastguard Worker '--config', api.vars.configuration, 74*c8dee2aaSAndroid Build Coastguard Worker '--source_type', 'pathkit', 75*c8dee2aaSAndroid Build Coastguard Worker ] 76*c8dee2aaSAndroid Build Coastguard Worker if 'asmjs' in api.vars.builder_name: 77*c8dee2aaSAndroid Build Coastguard Worker args.extend(['--compiled_language', 'asmjs']) # the default is wasm 78*c8dee2aaSAndroid Build Coastguard Worker if api.vars.is_trybot: 79*c8dee2aaSAndroid Build Coastguard Worker args.extend([ 80*c8dee2aaSAndroid Build Coastguard Worker '--issue', api.vars.issue, 81*c8dee2aaSAndroid Build Coastguard Worker '--patchset', api.vars.patchset, 82*c8dee2aaSAndroid Build Coastguard Worker ]) 83*c8dee2aaSAndroid Build Coastguard Worker 84*c8dee2aaSAndroid Build Coastguard Worker api.docker.run( 85*c8dee2aaSAndroid Build Coastguard Worker name='Test PathKit with Docker', 86*c8dee2aaSAndroid Build Coastguard Worker docker_image=DOCKER_IMAGE, 87*c8dee2aaSAndroid Build Coastguard Worker src_dir=checkout_root, 88*c8dee2aaSAndroid Build Coastguard Worker out_dir=out_dir, 89*c8dee2aaSAndroid Build Coastguard Worker script=checkout_root.joinpath(INNER_KARMA_SCRIPT), 90*c8dee2aaSAndroid Build Coastguard Worker args=args, 91*c8dee2aaSAndroid Build Coastguard Worker docker_args=docker_args, 92*c8dee2aaSAndroid Build Coastguard Worker copies=copies, 93*c8dee2aaSAndroid Build Coastguard Worker recursive_read=recursive_read, 94*c8dee2aaSAndroid Build Coastguard Worker attempts=3, 95*c8dee2aaSAndroid Build Coastguard Worker ) 96*c8dee2aaSAndroid Build Coastguard Worker 97*c8dee2aaSAndroid Build Coastguard Worker api.gold_upload.upload() 98*c8dee2aaSAndroid Build Coastguard Worker 99*c8dee2aaSAndroid Build Coastguard Worker 100*c8dee2aaSAndroid Build Coastguard Workerdef GenTests(api): 101*c8dee2aaSAndroid Build Coastguard Worker yield ( 102*c8dee2aaSAndroid Build Coastguard Worker api.test('Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit') + 103*c8dee2aaSAndroid Build Coastguard Worker api.properties(buildername=('Test-Debian10-EMCC-GCE-CPU-AVX2' 104*c8dee2aaSAndroid Build Coastguard Worker '-wasm-Debug-All-PathKit'), 105*c8dee2aaSAndroid Build Coastguard Worker repository='https://skia.googlesource.com/skia.git', 106*c8dee2aaSAndroid Build Coastguard Worker revision='abc123', 107*c8dee2aaSAndroid Build Coastguard Worker gs_bucket='skia-infra-gm', 108*c8dee2aaSAndroid Build Coastguard Worker path_config='kitchen', 109*c8dee2aaSAndroid Build Coastguard Worker swarm_out_dir='[SWARM_OUT_DIR]') 110*c8dee2aaSAndroid Build Coastguard Worker ) 111*c8dee2aaSAndroid Build Coastguard Worker 112*c8dee2aaSAndroid Build Coastguard Worker yield ( 113*c8dee2aaSAndroid Build Coastguard Worker api.test('Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Debug-All-PathKit') + 114*c8dee2aaSAndroid Build Coastguard Worker api.properties(buildername=('Test-Debian10-EMCC-GCE-CPU-AVX2' 115*c8dee2aaSAndroid Build Coastguard Worker '-asmjs-Debug-All-PathKit'), 116*c8dee2aaSAndroid Build Coastguard Worker repository='https://skia.googlesource.com/skia.git', 117*c8dee2aaSAndroid Build Coastguard Worker revision='abc123', 118*c8dee2aaSAndroid Build Coastguard Worker gs_bucket='skia-infra-gm', 119*c8dee2aaSAndroid Build Coastguard Worker path_config='kitchen', 120*c8dee2aaSAndroid Build Coastguard Worker swarm_out_dir='[SWARM_OUT_DIR]') 121*c8dee2aaSAndroid Build Coastguard Worker ) 122*c8dee2aaSAndroid Build Coastguard Worker 123*c8dee2aaSAndroid Build Coastguard Worker yield ( 124*c8dee2aaSAndroid Build Coastguard Worker api.test('Test-Debian10-EMCC-GCE-CPU-AVX2-asmjs-Release-All-PathKit') + 125*c8dee2aaSAndroid Build Coastguard Worker api.properties(buildername=('Test-Debian10-EMCC-GCE-CPU-AVX2' 126*c8dee2aaSAndroid Build Coastguard Worker '-asmjs-Release-All-PathKit'), 127*c8dee2aaSAndroid Build Coastguard Worker repository='https://skia.googlesource.com/skia.git', 128*c8dee2aaSAndroid Build Coastguard Worker revision='abc123', 129*c8dee2aaSAndroid Build Coastguard Worker gs_bucket='skia-infra-gm', 130*c8dee2aaSAndroid Build Coastguard Worker path_config='kitchen', 131*c8dee2aaSAndroid Build Coastguard Worker swarm_out_dir='[SWARM_OUT_DIR]') 132*c8dee2aaSAndroid Build Coastguard Worker ) 133*c8dee2aaSAndroid Build Coastguard Worker 134*c8dee2aaSAndroid Build Coastguard Worker yield ( 135*c8dee2aaSAndroid Build Coastguard Worker api.test('pathkit_trybot') + 136*c8dee2aaSAndroid Build Coastguard Worker api.properties(buildername=('Test-Debian10-EMCC-GCE-CPU-AVX2' 137*c8dee2aaSAndroid Build Coastguard Worker '-wasm-Debug-All-PathKit'), 138*c8dee2aaSAndroid Build Coastguard Worker repository='https://skia.googlesource.com/skia.git', 139*c8dee2aaSAndroid Build Coastguard Worker revision='abc123', 140*c8dee2aaSAndroid Build Coastguard Worker gs_bucket='skia-infra-gm', 141*c8dee2aaSAndroid Build Coastguard Worker path_config='kitchen', 142*c8dee2aaSAndroid Build Coastguard Worker swarm_out_dir='[SWARM_OUT_DIR]', 143*c8dee2aaSAndroid Build Coastguard Worker patch_ref='89/456789/12', 144*c8dee2aaSAndroid Build Coastguard Worker patch_repo='https://skia.googlesource.com/skia.git', 145*c8dee2aaSAndroid Build Coastguard Worker patch_storage='gerrit', 146*c8dee2aaSAndroid Build Coastguard Worker patch_set=7, 147*c8dee2aaSAndroid Build Coastguard Worker patch_issue=1234, 148*c8dee2aaSAndroid Build Coastguard Worker gerrit_project='skia', 149*c8dee2aaSAndroid Build Coastguard Worker gerrit_url='https://skia-review.googlesource.com/') 150*c8dee2aaSAndroid Build Coastguard Worker ) 151