f14a3c059f
Consolidates the karma files into one for docker/asmjs/wasm and all combinations. The asm.js build seems to have some small imprecisions that we didn't see as much as with WASM, probably due to JS limitations/differences to c++'s floats. To address these, I've marked some (5) tests in PathOps* as flaky because they fail on Release, Debug or Test versions of the asm.js build. Other then that, asm.js seems basically identical to the WASM. WASM is much smaller, 416k vs 877k and seems to load faster (not measured). Note to reviewers: example.html was copied from npm-wasm version, so doesn't need further review. Bug: skia:8216 Change-Id: Ib92b90fa6c598de85a0be319d46b25693ae5aaa4 Reviewed-on: https://skia-review.googlesource.com/148396 Reviewed-by: Stephan Altmueller <stephana@google.com>
236 lines
9.6 KiB
JSON
236 lines
9.6 KiB
JSON
[
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/cache/work"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs checkout_path"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"remove",
|
|
"[START_DIR]/cache/work/.gclient_entries"
|
|
],
|
|
"infra_step": true,
|
|
"name": "remove [START_DIR]/cache/work/.gclient_entries"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
|
"--spec-path",
|
|
"cache_dir = '[START_DIR]/cache/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
|
"--patch_root",
|
|
"skia",
|
|
"--revision_mapping_file",
|
|
"{\"got_revision\": \"skia\"}",
|
|
"--git-cache-dir",
|
|
"[START_DIR]/cache/git",
|
|
"--cleanup-dir",
|
|
"[CLEANUP]/bot_update",
|
|
"--output_json",
|
|
"/path/to/tmp/json",
|
|
"--revision",
|
|
"skia@abc123"
|
|
],
|
|
"cwd": "[START_DIR]/cache/work",
|
|
"env_prefixes": {
|
|
"PATH": [
|
|
"RECIPE_PACKAGE_REPO[depot_tools]"
|
|
]
|
|
},
|
|
"infra_step": true,
|
|
"name": "bot_update",
|
|
"~followup_annotations": [
|
|
"@@@STEP_TEXT@Some step text@@@",
|
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/skia.git\", @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@",
|
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
|
"@@@STEP_LOG_END@json.output@@@",
|
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/[SWARM_OUT_DIR]"
|
|
],
|
|
"infra_step": true,
|
|
"name": "mkdirs out_dir"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import errno\nimport os\nimport shutil\nimport sys\n\ncopy_dest = sys.argv[1]\nbase_dir = sys.argv[2]\nbundle_name = sys.argv[3]\nout_dir = sys.argv[4]\n\n# Clean out old binaries (if any)\ntry:\n shutil.rmtree(copy_dest)\nexcept OSError as e:\n if e.errno != errno.ENOENT:\n raise\n\n# Make folder\ntry:\n os.makedirs(copy_dest)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\n# Copy binaries (pathkit.js and pathkit.wasm) to where the karma tests\n# expect them ($SKIA_ROOT/experimental/pathkit/npm-wasm/test/)\ndest = os.path.join(copy_dest, 'pathkit.js')\nshutil.copyfile(os.path.join(base_dir, 'pathkit.js'), dest)\nos.chmod(dest, 0o644) # important, otherwise non-privileged docker can't read.\n\nif bundle_name:\n dest = os.path.join(copy_dest, bundle_name)\n shutil.copyfile(os.path.join(base_dir, bundle_name), dest)\n os.chmod(dest, 0o644) # important, otherwise non-privileged docker can't read.\n\n# Prepare output folder\nos.chmod(out_dir, 0o777) # important, otherwise non-privileged docker can't write.\n",
|
|
"[START_DIR]/cache/work/skia/experimental/pathkit/npm-wasm/bin/test",
|
|
"[START_DIR]/build",
|
|
"pathkit.wasm",
|
|
"[START_DIR]/[SWARM_OUT_DIR]"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Set up for docker",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@copy_dest = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@base_dir = sys.argv[2]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@bundle_name = sys.argv[3]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@out_dir = sys.argv[4]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Clean out old binaries (if any)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ shutil.rmtree(copy_dest)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.ENOENT:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Make folder@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(copy_dest)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Copy binaries (pathkit.js and pathkit.wasm) to where the karma tests@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# expect them ($SKIA_ROOT/experimental/pathkit/npm-wasm/test/)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@dest = os.path.join(copy_dest, 'pathkit.js')@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@shutil.copyfile(os.path.join(base_dir, 'pathkit.js'), dest)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@os.chmod(dest, 0o644) # important, otherwise non-privileged docker can't read.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@if bundle_name:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ dest = os.path.join(copy_dest, bundle_name)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ shutil.copyfile(os.path.join(base_dir, bundle_name), dest)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ os.chmod(dest, 0o644) # important, otherwise non-privileged docker can't read.@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@# Prepare output folder@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@os.chmod(out_dir, 0o777) # important, otherwise non-privileged docker can't write.@@@",
|
|
"@@@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": [
|
|
"docker",
|
|
"run",
|
|
"--shm-size=2gb",
|
|
"--rm",
|
|
"-v",
|
|
"[START_DIR]/cache/work:/SRC",
|
|
"-v",
|
|
"[START_DIR]/[SWARM_OUT_DIR]:/OUT",
|
|
"gcr.io/skia-public/gold-karma-chrome-tests:68.0.3440.106_v4",
|
|
"/SRC/skia/infra/pathkit/docker/test_pathkit.sh",
|
|
"--builder",
|
|
"Test-Debian9-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit",
|
|
"--git_hash",
|
|
"abc123",
|
|
"--buildbucket_build_id",
|
|
"",
|
|
"--bot_id",
|
|
"",
|
|
"--task_id",
|
|
"",
|
|
"--browser",
|
|
"Chrome",
|
|
"--config",
|
|
"Debug",
|
|
"--issue",
|
|
"1234",
|
|
"--patchset",
|
|
"7",
|
|
"--patch_storage",
|
|
"gerrit"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
|
|
},
|
|
"name": "Test PathKit with Docker"
|
|
},
|
|
{
|
|
"name": "$result",
|
|
"recipe_result": null,
|
|
"status_code": 0
|
|
}
|
|
] |