diff options
author | 2017-06-01 14:59:27 -0700 | |
---|---|---|
committer | 2017-06-02 11:40:36 +0000 | |
commit | dec4c0b29843d5de7d06c3998d919b3e3abecdf2 (patch) | |
tree | 1ac4f6d597681a783d145b91ffb9a48eded68f9b /infra/bots/recipe_modules/isolate/examples | |
parent | d5bee5d50c60eedda697ac305658d3817125e147 (diff) |
Rename example.py -> examples/full.py for all modules
`example.py` is going away; examples folder can now hold multiple
example recipes.
R=borenet@google.com
Bug: skia:
Change-Id: Ib28910987342217bc52040d4d966444174ce27a3
Reviewed-on: https://skia-review.googlesource.com/18432
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra/bots/recipe_modules/isolate/examples')
14 files changed, 2295 insertions, 0 deletions
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json b/infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json new file mode 100644 index 0000000000..1f5ffa13e5 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json @@ -0,0 +1,208 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated" + ], + "name": "isolate test_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test1.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated" + ], + "name": "isolate test1", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test2.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated" + ], + "name": "isolate test2", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/basic.json b/infra/bots/recipe_modules/isolate/examples/full.expected/basic.json new file mode 100644 index 0000000000..9ef2ef3e1f --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/basic.json @@ -0,0 +1,151 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "batcharchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json" + ], + "name": "isolate tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/discover.json b/infra/bots/recipe_modules/isolate/examples/full.expected/discover.json new file mode 100644 index 0000000000..d6ab964321 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/discover.json @@ -0,0 +1,124 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@null@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"dummy_target_1\": \"[dummy hash for dummy_target_1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"dummy_target_2\": \"[dummy hash for dummy_target_2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"dummy_target_1\": \"[dummy hash for dummy_target_1]\", \"dummy_target_2\": \"[dummy hash for dummy_target_2]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json new file mode 100644 index 0000000000..75d1af4b5f --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json @@ -0,0 +1,187 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@", + "@@@STEP_LOG_LINE@missing.isolates@test2@@@", + "@@@STEP_LOG_END@missing.isolates@@@", + "@@@STEP_FAILURE@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated" + ], + "name": "isolate test_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "batcharchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json" + ], + "name": "isolate tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": null@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@", + "@@@STEP_LOG_LINE@failed to isolate@test2@@@", + "@@@STEP_LOG_LINE@failed to isolate@@@@", + "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@", + "@@@STEP_LOG_END@failed to isolate@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json new file mode 100644 index 0000000000..142ebd592a --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json @@ -0,0 +1,187 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@", + "@@@STEP_LOG_LINE@missing.isolates@test_exparchive@@@", + "@@@STEP_LOG_END@missing.isolates@@@", + "@@@STEP_FAILURE@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated" + ], + "name": "isolate test_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": null@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "batcharchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json" + ], + "name": "isolate tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@", + "@@@STEP_LOG_LINE@failed to isolate@test_exparchive@@@", + "@@@STEP_LOG_LINE@failed to isolate@@@@", + "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@", + "@@@STEP_LOG_END@failed to isolate@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json new file mode 100644 index 0000000000..e2d26d6f45 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json @@ -0,0 +1,179 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated" + ], + "name": "isolate test_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "batcharchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json" + ], + "name": "isolate tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json new file mode 100644 index 0000000000..06eceaa787 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json @@ -0,0 +1,159 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@", + "@@@STEP_LOG_LINE@missing.isolates@test_exparchive@@@", + "@@@STEP_LOG_END@missing.isolates@@@", + "@@@STEP_FAILURE@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated" + ], + "name": "isolate test_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": null@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@", + "@@@STEP_LOG_LINE@failed to isolate@test_exparchive@@@", + "@@@STEP_LOG_LINE@failed to isolate@@@@", + "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@", + "@@@STEP_LOG_END@failed to isolate@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json new file mode 100644 index 0000000000..02131c3553 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json @@ -0,0 +1,188 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@", + "@@@STEP_LOG_LINE@missing.isolates@test2_exparchive@@@", + "@@@STEP_LOG_END@missing.isolates@@@", + "@@@STEP_FAILURE@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolated" + ], + "name": "isolate test1_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolated" + ], + "name": "isolate test2_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\": null@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@", + "@@@STEP_LOG_LINE@failed to isolate@test2_exparchive@@@", + "@@@STEP_LOG_LINE@failed to isolate@@@@", + "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@", + "@@@STEP_LOG_END@failed to isolate@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json new file mode 100644 index 0000000000..871423dbd7 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json @@ -0,0 +1,180 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\", \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolated" + ], + "name": "isolate test1_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolated" + ], + "name": "isolate test2_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\", \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json new file mode 100644 index 0000000000..33fadc15dd --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json @@ -0,0 +1,152 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "exparchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "--eventlog-endpoint", + "prod", + "--isolate", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate", + "--isolated", + "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated" + ], + "name": "isolate test_exparchive", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/extra.json b/infra/bots/recipe_modules/isolate/examples/full.expected/extra.json new file mode 100644 index 0000000000..3f1987d987 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/extra.json @@ -0,0 +1,152 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"extra_test\": \"[dummy hash for extra_test]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "batcharchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json" + ], + "name": "isolate tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/missing.json b/infra/bots/recipe_modules/isolate/examples/full.expected/missing.json new file mode 100644 index 0000000000..90e1e95dd7 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/missing.json @@ -0,0 +1,159 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@[@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@", + "@@@STEP_LOG_LINE@json.output@]@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@", + "@@@STEP_LOG_LINE@missing.isolates@test2@@@", + "@@@STEP_LOG_END@missing.isolates@@@", + "@@@STEP_FAILURE@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\"}@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/isolate.py", + "[START_DIR]/swarming.client", + "batcharchive", + "--dump-json", + "/path/to/tmp/json", + "--isolate-server", + "https://isolateserver-dev.appspot.com", + "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json", + "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json" + ], + "name": "isolate tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"test2\": null@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@", + "@@@STEP_LOG_LINE@failed to isolate@test2@@@", + "@@@STEP_LOG_LINE@failed to isolate@@@@", + "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@", + "@@@STEP_LOG_END@failed to isolate@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\"}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/none.json b/infra/bots/recipe_modules/isolate/examples/full.expected/none.json new file mode 100644 index 0000000000..335b6227d1 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.expected/none.json @@ -0,0 +1,122 @@ +[ + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/swarming.client", + "--url", + "https://chromium.googlesource.com/external/swarming.client.git" + ], + "name": "git setup (swarming_client)" + }, + { + "cmd": [ + "git", + "retry", + "fetch", + "origin", + "master" + ], + "cwd": "[START_DIR]/swarming.client", + "env": { + "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "git fetch (swarming_client)" + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git checkout (swarming_client)" + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "read revision", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "git clean (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule sync (swarming_client)" + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/swarming.client", + "infra_step": true, + "name": "submodule update (swarming_client)" + }, + { + "cmd": [ + "cat" + ], + "name": "read test spec", + "stdout": "/path/to/tmp/json", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@null@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py", + "--build-dir", + "RECIPE_PACKAGE_REPO[skia]", + "--output-json", + "/path/to/tmp/json" + ], + "name": "find isolated tests", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@json.output@{}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@STEP_WARNINGS@@@", + "@@@SET_BUILD_PROPERTY@swarm_hashes@{}@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/isolate/examples/full.py b/infra/bots/recipe_modules/isolate/examples/full.py new file mode 100644 index 0000000000..7dfa009f65 --- /dev/null +++ b/infra/bots/recipe_modules/isolate/examples/full.py @@ -0,0 +1,147 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + + +# TODO(borenet): This module was copied from build.git and heavily modified to +# remove dependencies on other modules in build.git. It belongs in a different +# repo. Remove this once it has been moved. + + +from recipe_engine.recipe_api import Property + +DEPS = [ + 'isolate', + 'recipe_engine/json', + 'recipe_engine/path', + 'recipe_engine/properties', + 'recipe_engine/step', + 'swarming_client', +] + +PROPERTIES = { + 'always_use_exparchive': Property( + kind=bool, help="Force usage of exparchive.", default=False), +} + + +def RunSteps(api, always_use_exparchive): + # 'isolate_tests' step needs swarming checkout. + api.swarming_client.checkout('master') + + # Code coverage for isolate_server property. + api.isolate.isolate_server = 'https://isolateserver-dev.appspot.com' + assert api.isolate.isolate_server == 'https://isolateserver-dev.appspot.com' + + # That would read a list of files to search for, generated in GenTests. + step_result = api.step('read test spec', ['cat'], stdout=api.json.output()) + expected_targets = step_result.stdout + + build_path = api.isolate.package_repo_resource() + # Generates code coverage for find_isolated_tests corner cases. + # TODO(vadimsh): This step doesn't actually make any sense when the recipe + # is running for real via run_recipe.py. + api.isolate.find_isolated_tests(build_path, expected_targets) + + # Code coverage for 'isolate_tests'. 'isolated_test' doesn't support discovery + # of isolated targets in build directory, so skip if 'expected_targets' is + # None. + if expected_targets is not None: + api.isolate.isolate_tests( + build_path, expected_targets, + always_use_exparchive=always_use_exparchive) + + +def GenTests(api): + def make_test( + name, + expected_batcharchive_targets, + expected_exparchive_targets, + discovered_targets): + + if expected_batcharchive_targets or expected_exparchive_targets: + all_expected_targets = ( + (expected_batcharchive_targets or []) + + (expected_exparchive_targets or [])) + else: + all_expected_targets = None + + missing = set(all_expected_targets or []) - set(discovered_targets or []) + output = ( + api.test(name) + + api.step_data( + 'read test spec', + stdout=api.json.output(all_expected_targets)) + + api.override_step_data( + 'find isolated tests', + api.isolate.output_json(discovered_targets)) + ) + + # See comment around 'if expected_targets is not None' above. + if all_expected_targets: + for target in sorted(expected_exparchive_targets): + output += api.override_step_data( + 'isolate %s' % target, + api.isolate.output_json([target], missing)) + + if expected_batcharchive_targets: + output += api.override_step_data( + 'isolate tests', + api.isolate.output_json(expected_batcharchive_targets, missing)) + + return output + + # Expected targets == found targets. + yield make_test( + 'basic', ['test1', 'test2'], [], ['test1', 'test2']) + # No expectations, just discovering what's there returned by default mock. + yield make_test( + 'discover', None, None, None) + # Found more than expected. + yield make_test( + 'extra', ['test1', 'test2'], [], ['test1', 'test2', 'extra_test']) + # Didn't find something. + yield ( + make_test('missing', ['test1', 'test2'], [], ['test1']) + + api.properties.generic(buildername='Windows Swarm Test')) + # No expectations, and nothing has been found, produces warning. + yield make_test('none', None, None, []) + # Test the `exparchive` cases + # Only exparchive + yield make_test( + 'exparchive', [], ['test_exparchive'], ['test_exparchive']) + yield make_test( + 'exparchive-miss', [], ['test_exparchive'], []) + yield make_test( + 'exparchive-multi', + [], + ['test1_exparchive', 'test2_exparchive'], + ['test1_exparchive', 'test2_exparchive']) + yield make_test( + 'exparchive-multi-miss', + [], + ['test1_exparchive', 'test2_exparchive'], + ['test1_exparchive']) + # Mixed + yield make_test( + 'exparchive-batch', + ['test1', 'test2'], + ['test_exparchive'], + ['test1', 'test2', 'test_exparchive']) + yield make_test( + 'exparchive-batch-bmiss', + ['test1', 'test2'], + ['test_exparchive'], + ['test1', 'test_exparchive']) + yield make_test( + 'exparchive-batch-emiss', + ['test1', 'test2'], + ['test_exparchive'], + ['test1', 'test2']) + # Use force-exparchive + yield make_test( + 'always-use-exparchive', + [], + ['test_exparchive', 'test1', 'test2'], + ['test_exparchive', 'test1', 'test2']) + api.properties( + always_use_exparchive=True) |