Make test shard tasks inherit several dimensions from the parent task.

 - Fixes issue where a builder would set os:Ubuntu-22 but its test shards would set os:Linux (b/282142073).
 - Fixes QEMU builders (including Fuchsia ARM64) setting cpu to the dimension of the emulated cpu.
 - Avoids needing to explicitly filter out host_class for Windows ARM64.

Compare https://dart-review.googlesource.com/c/recipes/+/328500
Compare https://dart-review.googlesource.com/c/recipes/+/507080

Change-Id: I399de41b2b6fbbf59fb594369b6286d91ed40813
Reviewed-on: https://dart-review.googlesource.com/c/recipes/+/507920
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
diff --git a/recipe_modules/dart/api.py b/recipe_modules/dart/api.py
index c7cfc70..cf5b8ff 100644
--- a/recipe_modules/dart/api.py
+++ b/recipe_modules/dart/api.py
@@ -222,8 +222,7 @@
             isolate_hash,
             test_args,
             os,
-            cpu='x86-64',
-            pool='dart.tests',
+            cpu,
             num_shards=0,
             last_shard_is_local=False,
             cipd_ensure_file=None,
@@ -262,42 +261,38 @@
       if self.balance_shards:
         cmd.append('--previous-results=LATEST/results.json')
 
-      # TODO(crbug/1018836): Use distro specific name instead of Linux.
-      os_names = {
-          'android': 'Android',
-          # A shard for Fuchsia tests should run on a Linux machine.
-          'fuchsia': 'Ubuntu-22',
-          'linux': 'Linux',
-          'mac': 'Mac',
-          'win': 'Windows',
-      }
-
-      # Dimensions of this swarming task.
-      self_dimensions = {
+      # Inherit dimensions from the parent task for the test shards. In
+      # particular, if the builder is picky about which OS or browser version
+      # it wants, its test shards should also get the same version. Don't
+      # inherit everything because some dimensions like 'caches' are only
+      # meaningful for the parent and the sudden addition of new dimensions
+      # like this might result in all shards having no matching matches to run
+      # on.
+      parent_dimensions = {
           d.key: d.value for d in self.m.buildbucket.backend_task_dimensions
       }
-      host_class = self_dimensions.get('host_class', 'default')
-      safari_dimension = self_dimensions.get('safari', None)
-
-      # Android bots use host_class android instead of default.
-      if os == 'android':
-        host_class = 'android'
-
+      inherited_dimensions = ['cpu', 'host_class', 'kvm', 'os', 'safari']
       dimensions = {
-          'os': os_names.get(os, os),
-          'cpu': cpu,
-          'host_class': host_class,
-          'pool': pool,
-          'gpu': None,
+          k: v
+          for k, v in parent_dimensions.items()
+          if k in inherited_dimensions
       }
-      if safari_dimension:
-        dimensions['safari'] = safari_dimension
 
+      # Route test shards to a separate pool. This prevents a starvation
+      # scenario where all machines are busy with parent tasks and child tasks
+      # can't get scheduled.
+      dimensions['pool'] = 'dart.tests'
+      # There are no Windows ARM64 machines in Dart's pools, so we use Flutter's.
       if os == 'win' and cpu == 'arm64':
-        dimensions["pool"] = "luci.flutter.staging"
-        # TODO(https://github.com/flutter/flutter/issues/127691): Remove
-        # filtering of host_class.
-        dimensions.pop("host_class")
+        dimensions['pool'] = parent_dimensions['pool']
+
+      # Android is the edge case where the parent task only does building on a
+      # powerful cloud machine and the test shards should be routed to weaker
+      # machines with phones attached.
+      if os == 'android':
+        dimensions['os'] = 'Android'
+        dimensions['host_class'] = 'android'
+        dimensions['cpu'] = cpu  # I.e., cpu of the phone from the builder name.
 
       task_request = (
           self.m.swarming.task_request().with_name(
diff --git a/recipe_modules/dart/examples/example.expected/analyzer-linux-release-main.json b/recipe_modules/dart/examples/example.expected/analyzer-linux-release-main.json
index 2b63de7..2cee749 100644
--- a/recipe_modules/dart/examples/example.expected/analyzer-linux-release-main.json
+++ b/recipe_modules/dart/examples/example.expected/analyzer-linux-release-main.json
@@ -15,7 +15,7 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "sdk@3456abce78ef",
+      "sdk@2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "--refs",
       "refs/heads/main"
     ],
@@ -61,17 +61,17 @@
       "@@@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@    \"sdk\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"sdk\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_root\": null,@@@",
       "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/main@{#73837}\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"root\": \"sdk\",@@@",
@@ -80,7 +80,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    },@@@",
@@ -89,7 +89,7 @@
       "@@@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@\"3456abce78ef\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/main@{#73837}\"@@@"
     ]
   },
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1108,7 +1141,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1233,7 +1266,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -1341,7 +1374,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -1542,7 +1575,7 @@
       }
     },
     "name": "trigger",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"foo-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"3456abce78ef\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release-main\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"3456abce78ef\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"bar-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"3456abce78ef\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release-main\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"3456abce78ef\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"foo-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release-main\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"bar-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release-main\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -1580,7 +1613,7 @@
       "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\",@@@",
       "@@@STEP_LOG_LINE@request@        \"gitilesCommit\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"host\": \"dart.googlesource.com\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"id\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@request@          \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"sdk\",@@@",
       "@@@STEP_LOG_LINE@request@          \"ref\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
@@ -1590,7 +1623,7 @@
       "@@@STEP_LOG_LINE@request@          \"parent_buildername\": \"analyzer-linux-release-main\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset\": \"trigger_hash/47\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset_name\": \"trigger\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@request@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
       "@@@STEP_LOG_LINE@request@        \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\",@@@",
       "@@@STEP_LOG_LINE@request@        \"tags\": [@@@",
@@ -1619,7 +1652,7 @@
       "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\",@@@",
       "@@@STEP_LOG_LINE@request@        \"gitilesCommit\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"host\": \"dart.googlesource.com\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"id\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@request@          \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"sdk\",@@@",
       "@@@STEP_LOG_LINE@request@          \"ref\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
@@ -1629,7 +1662,7 @@
       "@@@STEP_LOG_LINE@request@          \"parent_buildername\": \"analyzer-linux-release-main\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset\": \"trigger_hash/47\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset_name\": \"trigger\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@request@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
       "@@@STEP_LOG_LINE@request@        \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\",@@@",
       "@@@STEP_LOG_LINE@request@        \"tags\": [@@@",
@@ -1663,7 +1696,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test3_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nanalyzer-asserts-linux\", \"foo\", \"--bar\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test3_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nanalyzer-asserts-linux\", \"foo\", \"--bar\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1784,7 +1817,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -2389,7 +2422,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"experimental\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2513,7 +2546,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -3040,7 +3073,7 @@
       "--build-id",
       "8945511751514863184",
       "--commit",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3097,7 +3130,7 @@
       "analyzer-linux-release-main",
       "1357",
       "1234567",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "/path/to/tmp/"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3134,7 +3167,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/experimental/builders/analyzer-linux-release-main/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3299,7 +3332,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/experimental/configuration/main/dartk-linux-product-x64/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
diff --git a/recipe_modules/dart/examples/example.expected/analyzer-linux-release.json b/recipe_modules/dart/examples/example.expected/analyzer-linux-release.json
index f7e9ec3..7720da1 100644
--- a/recipe_modules/dart/examples/example.expected/analyzer-linux-release.json
+++ b/recipe_modules/dart/examples/example.expected/analyzer-linux-release.json
@@ -15,7 +15,7 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "sdk@3456abce78ef",
+      "sdk@2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "--refs",
       "refs/heads/main"
     ],
@@ -61,17 +61,17 @@
       "@@@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@    \"sdk\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"sdk\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_root\": null,@@@",
       "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/main@{#73837}\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"root\": \"sdk\",@@@",
@@ -80,7 +80,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    },@@@",
@@ -89,7 +89,7 @@
       "@@@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@\"3456abce78ef\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/main@{#73837}\"@@@"
     ]
   },
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1104,7 +1137,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1228,7 +1261,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -1336,7 +1369,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -1533,7 +1566,7 @@
       }
     },
     "name": "trigger",
-    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"foo-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"3456abce78ef\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"3456abce78ef\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"bar-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"3456abce78ef\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"3456abce78ef\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+    "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"foo-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"bar-builder\", \"project\": \"dart\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"dart.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"sdk\", \"ref\": \"refs/heads/main\"}, \"priority\": 30, \"properties\": {\"parent_build_id\": \"8945511751514863184\", \"parent_buildername\": \"analyzer-linux-release\", \"parent_fileset\": \"trigger_hash/47\", \"parent_fileset_name\": \"trigger\", \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@json.output@{@@@",
       "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
@@ -1571,7 +1604,7 @@
       "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\",@@@",
       "@@@STEP_LOG_LINE@request@        \"gitilesCommit\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"host\": \"dart.googlesource.com\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"id\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@request@          \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"sdk\",@@@",
       "@@@STEP_LOG_LINE@request@          \"ref\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
@@ -1581,7 +1614,7 @@
       "@@@STEP_LOG_LINE@request@          \"parent_buildername\": \"analyzer-linux-release\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset\": \"trigger_hash/47\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset_name\": \"trigger\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@request@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
       "@@@STEP_LOG_LINE@request@        \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\",@@@",
       "@@@STEP_LOG_LINE@request@        \"tags\": [@@@",
@@ -1610,7 +1643,7 @@
       "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\",@@@",
       "@@@STEP_LOG_LINE@request@        \"gitilesCommit\": {@@@",
       "@@@STEP_LOG_LINE@request@          \"host\": \"dart.googlesource.com\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"id\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@request@          \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@request@          \"project\": \"sdk\",@@@",
       "@@@STEP_LOG_LINE@request@          \"ref\": \"refs/heads/main\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
@@ -1620,7 +1653,7 @@
       "@@@STEP_LOG_LINE@request@          \"parent_buildername\": \"analyzer-linux-release\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset\": \"trigger_hash/47\",@@@",
       "@@@STEP_LOG_LINE@request@          \"parent_fileset_name\": \"trigger\",@@@",
-      "@@@STEP_LOG_LINE@request@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@request@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@request@        },@@@",
       "@@@STEP_LOG_LINE@request@        \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\",@@@",
       "@@@STEP_LOG_LINE@request@        \"tags\": [@@@",
@@ -1654,7 +1687,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test3_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nanalyzer-asserts-linux\", \"foo\", \"--bar\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test3_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nanalyzer-asserts-linux\", \"foo\", \"--bar\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1774,7 +1807,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -2376,7 +2409,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nunittest-asserts-release-linux\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2499,7 +2532,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -3020,7 +3053,7 @@
       "--build-id",
       "8945511751514863184",
       "--commit",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"trusty-dart-123\"}\n"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3077,7 +3110,7 @@
       "analyzer-linux-release",
       "1357",
       "1234567",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "/path/to/tmp/"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3114,7 +3147,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/builders/analyzer-linux-release/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3312,7 +3345,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -3528,7 +3561,7 @@
       "--buildbucket_id",
       "8945511751514863184",
       "--base_revision",
-      "3456abce78ef"
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
diff --git a/recipe_modules/dart/examples/example.expected/basic-mac.json b/recipe_modules/dart/examples/example.expected/basic-mac.json
index 9695207..c5756c4 100644
--- a/recipe_modules/dart/examples/example.expected/basic-mac.json
+++ b/recipe_modules/dart/examples/example.expected/basic-mac.json
@@ -242,7 +242,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -320,6 +320,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/basic-missing-name.json b/recipe_modules/dart/examples/example.expected/basic-missing-name.json
index 9c019bf..ceca2e6 100644
--- a/recipe_modules/dart/examples/example.expected/basic-missing-name.json
+++ b/recipe_modules/dart/examples/example.expected/basic-missing-name.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/bisection-does-not-refer-to-latest-build-or-publish-results.json b/recipe_modules/dart/examples/example.expected/bisection-does-not-refer-to-latest-build-or-publish-results.json
index 03c154e..be7a9df 100644
--- a/recipe_modules/dart/examples/example.expected/bisection-does-not-refer-to-latest-build-or-publish-results.json
+++ b/recipe_modules/dart/examples/example.expected/bisection-does-not-refer-to-latest-build-or-publish-results.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -997,7 +1030,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1127,7 +1160,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -1241,7 +1274,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
@@ -1873,7 +1906,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2002,7 +2035,7 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
diff --git a/recipe_modules/dart/examples/example.expected/branch-builder-does-not-publish-results.json b/recipe_modules/dart/examples/example.expected/branch-builder-does-not-publish-results.json
index a25ffc9..fd17fe0 100644
--- a/recipe_modules/dart/examples/example.expected/branch-builder-does-not-publish-results.json
+++ b/recipe_modules/dart/examples/example.expected/branch-builder-does-not-publish-results.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/branch-try-builder-does-not-publish-results.json b/recipe_modules/dart/examples/example.expected/branch-try-builder-does-not-publish-results.json
index 18c00a3..a9a9cba 100644
--- a/recipe_modules/dart/examples/example.expected/branch-try-builder-does-not-publish-results.json
+++ b/recipe_modules/dart/examples/example.expected/branch-try-builder-does-not-publish-results.json
@@ -281,7 +281,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -359,6 +359,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1124,7 +1157,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1251,18 +1284,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -1371,18 +1392,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -2013,7 +2022,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2139,18 +2148,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
diff --git a/recipe_modules/dart/examples/example.expected/ci-test-data-branch-builder-does-publish-results.json b/recipe_modules/dart/examples/example.expected/ci-test-data-branch-builder-does-publish-results.json
index cdb5f60..16c6a5e 100644
--- a/recipe_modules/dart/examples/example.expected/ci-test-data-branch-builder-does-publish-results.json
+++ b/recipe_modules/dart/examples/example.expected/ci-test-data-branch-builder-does-publish-results.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/co19.json b/recipe_modules/dart/examples/example.expected/co19.json
index 49fb95e..d4a6291 100644
--- a/recipe_modules/dart/examples/example.expected/co19.json
+++ b/recipe_modules/dart/examples/example.expected/co19.json
@@ -113,7 +113,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"co19_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"co19/nnbd\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"co19_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"co19/nnbd\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -227,18 +227,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -451,7 +439,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"co19_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"co19/nnbd\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"co19_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"co19/nnbd\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -570,18 +558,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
diff --git a/recipe_modules/dart/examples/example.expected/dart2wasm-mac-safari.json b/recipe_modules/dart/examples/example.expected/dart2wasm-mac-safari.json
index 5f3d3f5..8ee3736 100644
--- a/recipe_modules/dart/examples/example.expected/dart2wasm-mac-safari.json
+++ b/recipe_modules/dart/examples/example.expected/dart2wasm-mac-safari.json
@@ -15,7 +15,7 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "sdk@3456abce78ef",
+      "sdk@2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "--refs",
       "refs/heads/main"
     ],
@@ -61,17 +61,17 @@
       "@@@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@    \"sdk\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"sdk\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_root\": null,@@@",
       "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/main@{#73837}\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"root\": \"sdk\",@@@",
@@ -80,7 +80,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    },@@@",
@@ -89,7 +89,7 @@
       "@@@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@\"3456abce78ef\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/main@{#73837}\"@@@"
     ]
   },
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1081,7 +1114,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"dart2wasm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"--arch=arm64\", \"-ndart2wasm-mac-safari\", \"co19\", \"corelib\", \"language\", \"lib\", \"web\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Mac\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}, {\"key\": \"safari\", \"value\": \"Safari 1.2.3\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"dart2wasm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"--arch=arm64\", \"-ndart2wasm-mac-safari\", \"co19\", \"corelib\", \"language\", \"lib\", \"web\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Mac\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}, {\"key\": \"safari\", \"value\": \"Safari 1.2.3\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1205,10 +1238,6 @@
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"arm64\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"Mac\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
@@ -1700,7 +1729,7 @@
       "--build-id",
       "8945511751514863184",
       "--commit",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"mac-safari-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"mac-safari-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"mac-safari-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"mac-safari-123\"}\n"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -1757,7 +1786,7 @@
       "dart2wasm-mac-safari",
       "1357",
       "1234567",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "/path/to/tmp/"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -1794,7 +1823,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/builders/dart2wasm-mac-safari/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -1992,7 +2021,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -2208,7 +2237,7 @@
       "--buildbucket_id",
       "8945511751514863184",
       "--base_revision",
-      "3456abce78ef"
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
diff --git a/recipe_modules/dart/examples/example.expected/example-android.json b/recipe_modules/dart/examples/example.expected/example-android.json
index f4a5d3a..13be0f5 100644
--- a/recipe_modules/dart/examples/example.expected/example-android.json
+++ b/recipe_modules/dart/examples/example.expected/example-android.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1945,7 +1978,7 @@
       "",
       "[CACHE]/builder/sdk/LATEST/flaky.json",
       "vm-kernel-precomp-android-release-arm64c",
-      "0",
+      "1357",
       "1234567",
       "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "/path/to/tmp/"
@@ -1985,7 +2018,7 @@
       "----",
       "cp",
       "2d72510e447ab60a9728aeea2362d8be2cbd7789",
-      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision"
+      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2004,8 +2037,8 @@
     "name": "upload new results.gsutil upload revision",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\"}@@@"
     ]
   },
   {
@@ -2018,7 +2051,7 @@
       "----",
       "cp",
       "{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n",
-      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json"
+      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2037,8 +2070,8 @@
     "name": "upload new results.gsutil upload logs.json",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\"}@@@"
     ]
   },
   {
@@ -2051,7 +2084,7 @@
       "----",
       "cp",
       "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
-      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json"
+      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2070,8 +2103,8 @@
     "name": "upload new results.gsutil upload results.json",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\"}@@@"
     ]
   },
   {
@@ -2084,7 +2117,7 @@
       "----",
       "cp",
       "",
-      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json"
+      "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2103,8 +2136,8 @@
     "name": "upload new results.gsutil upload flaky.json",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\"}@@@"
     ]
   },
   {
@@ -2137,7 +2170,7 @@
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\"}@@@"
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\"}@@@"
     ]
   },
   {
@@ -2149,7 +2182,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "0",
+      "1357",
       "gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -2170,7 +2203,7 @@
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\"}@@@"
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\"}@@@"
     ]
   },
   {
@@ -2183,7 +2216,7 @@
       "----",
       "cp",
       "2d72510e447ab60a9728aeea2362d8be2cbd7789",
-      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/revision"
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2202,8 +2235,8 @@
     "name": "upload new results.gsutil upload revision (2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/0/revision@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
     ]
   },
   {
@@ -2216,7 +2249,7 @@
       "----",
       "cp",
       "",
-      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/logs.json"
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2235,8 +2268,8 @@
     "name": "upload new results.gsutil upload logs.json (2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/0/logs.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
     ]
   },
   {
@@ -2249,7 +2282,7 @@
       "----",
       "cp",
       "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
-      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/results.json"
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2268,8 +2301,8 @@
     "name": "upload new results.gsutil upload results.json (2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/0/results.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
     ]
   },
   {
@@ -2282,7 +2315,7 @@
       "----",
       "cp",
       "",
-      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/flaky.json"
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json"
     ],
     "cwd": "[CACHE]/builder/sdk",
     "infra_step": true,
@@ -2301,8 +2334,8 @@
     "name": "upload new results.gsutil upload flaky.json (2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/0/flaky.json@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/revision\"}@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
     ]
   },
   {
@@ -2314,7 +2347,7 @@
       "RECIPE_REPO[depot_tools]/gsutil.py",
       "----",
       "cp",
-      "0",
+      "1357",
       "gs://dart-test-results/configuration/main/dartk-linux-product-x64/latest"
     ],
     "cwd": "[CACHE]/builder/sdk",
@@ -2335,7 +2368,7 @@
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
       "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/latest@@@",
-      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil update \\\"latest\\\" reference (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/flaky.json\", \"upload new results|gsutil upload flaky.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/0/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/0/revision\"}@@@"
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/latest\", \"upload new results|gsutil update \\\"latest\\\" reference (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/flaky.json\", \"upload new results|gsutil upload flaky.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-kernel-precomp-android-release-arm64c.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-kernel-precomp-android-release-arm64c.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-kernel-precomp-android-release-arm64c/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
     ]
   },
   {
@@ -2659,7 +2692,7 @@
       "-b",
       "vm-kernel-precomp-android-release-arm64c",
       "-n",
-      "0",
+      "1357",
       "-a",
       "extra.secret.token.should.not.be.logged"
     ],
diff --git a/recipe_modules/dart/examples/example.expected/example-mac.json b/recipe_modules/dart/examples/example.expected/example-mac.json
index 2a8219b..491b96a 100644
--- a/recipe_modules/dart/examples/example.expected/example-mac.json
+++ b/recipe_modules/dart/examples/example.expected/example-mac.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/fuzz-test.json b/recipe_modules/dart/examples/example.expected/fuzz-test.json
index fe1d555..747c1fc 100644
--- a/recipe_modules/dart/examples/example.expected/fuzz-test.json
+++ b/recipe_modules/dart/examples/example.expected/fuzz-test.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -873,7 +906,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"make a fuzz_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"out/ReleaseX64/dart\", \"runtime/tools/dartfuzz/dartfuzz_test.dart\", \"--isolates\", \"8\", \"--no-show-stats\", \"--time\", \"2700\", \"--shards=3\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"make a fuzz_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"out/ReleaseX64/dart\", \"runtime/tools/dartfuzz/dartfuzz_test.dart\", \"--isolates\", \"8\", \"--no-show-stats\", \"--time\", \"2700\", \"--shards=3\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"make a fuzz_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"out/ReleaseX64/dart\", \"runtime/tools/dartfuzz/dartfuzz_test.dart\", \"--isolates\", \"8\", \"--no-show-stats\", \"--time\", \"2700\", \"--shards=3\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"make a fuzz_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"out/ReleaseX64/dart\", \"runtime/tools/dartfuzz/dartfuzz_test.dart\", \"--isolates\", \"8\", \"--no-show-stats\", \"--time\", \"2700\", \"--shards=3\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -983,18 +1016,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -1086,18 +1107,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
diff --git a/recipe_modules/dart/examples/example.expected/non-test-step-error-is-step-failure.json b/recipe_modules/dart/examples/example.expected/non-test-step-error-is-step-failure.json
index 77fcac7..98fa094 100644
--- a/recipe_modules/dart/examples/example.expected/non-test-step-error-is-step-failure.json
+++ b/recipe_modules/dart/examples/example.expected/non-test-step-error-is-step-failure.json
@@ -19,7 +19,7 @@
     },
     "luci_context": {
       "realm": {
-        "name": "project:ci"
+        "name": "dart:ci"
       },
       "resultdb": {
         "current_invocation": {
diff --git a/recipe_modules/dart/examples/example.expected/pkg-linux-debug.json b/recipe_modules/dart/examples/example.expected/pkg-linux-debug.json
index e4cdb8c..5806247 100644
--- a/recipe_modules/dart/examples/example.expected/pkg-linux-debug.json
+++ b/recipe_modules/dart/examples/example.expected/pkg-linux-debug.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/pkg-mac-release-arm64.json b/recipe_modules/dart/examples/example.expected/pkg-mac-release-arm64.json
index bfba4e2..0c43e79 100644
--- a/recipe_modules/dart/examples/example.expected/pkg-mac-release-arm64.json
+++ b/recipe_modules/dart/examples/example.expected/pkg-mac-release-arm64.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/pkg-win-release.json b/recipe_modules/dart/examples/example.expected/pkg-win-release.json
index c0363d0..c7e8cd8 100644
--- a/recipe_modules/dart/examples/example.expected/pkg-win-release.json
+++ b/recipe_modules/dart/examples/example.expected/pkg-win-release.json
@@ -223,7 +223,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -301,6 +301,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/release-builder-does-not-publish-results.json b/recipe_modules/dart/examples/example.expected/release-builder-does-not-publish-results.json
index 2c1246a..8772a94 100644
--- a/recipe_modules/dart/examples/example.expected/release-builder-does-not-publish-results.json
+++ b/recipe_modules/dart/examples/example.expected/release-builder-does-not-publish-results.json
@@ -221,7 +221,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -299,6 +299,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
diff --git a/recipe_modules/dart/examples/example.expected/try-builder-publishes-results.json b/recipe_modules/dart/examples/example.expected/try-builder-publishes-results.json
index cae8142..ae2e4fa 100644
--- a/recipe_modules/dart/examples/example.expected/try-builder-publishes-results.json
+++ b/recipe_modules/dart/examples/example.expected/try-builder-publishes-results.json
@@ -281,7 +281,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -359,6 +359,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1124,7 +1157,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"test1_shard_2\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--silent-failures\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1251,18 +1284,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -1371,18 +1392,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -2013,7 +2022,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Linux\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"test1_shard_1\", \"priority\": \"25\", \"realm\": \"dart:try\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/browsers/firefox/${platform}\", \"path\": \"third_party/browsers/firefox\", \"version\": \"version:67\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"/usr/bin/xvfb-run\", \"-a\", \"--server-args=-screen 0 1024x768x24\", \"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-ndart2js-linux-firefox\", \"foo\", \"--bar\", \"-e co19, language\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--firefox=third_party/browsers/firefox/firefox/firefox\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2139,18 +2148,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Linux\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
diff --git a/recipe_modules/dart/examples/example.expected/vm-qemu-riscv64.json b/recipe_modules/dart/examples/example.expected/vm-qemu-riscv64.json
new file mode 100644
index 0000000..7eed5bb
--- /dev/null
+++ b/recipe_modules/dart/examples/example.expected/vm-qemu-riscv64.json
@@ -0,0 +1,3411 @@
+[
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
+      "--spec-path",
+      "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': 'DEPS', 'managed': False, 'name': 'sdk', 'url': 'https://dart.googlesource.com/sdk.git'}]",
+      "--revision_mapping_file",
+      "{}",
+      "--git-cache-dir",
+      "[CACHE]/git",
+      "--cleanup-dir",
+      "[CLEANUP]/bot_update",
+      "--output_json",
+      "/path/to/tmp/json",
+      "--revision",
+      "sdk@2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "--refs",
+      "refs/heads/main"
+    ],
+    "cwd": "[CACHE]/builder",
+    "env": {
+      "CHROME_HEADLESS": "1",
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci/vm-ffi-qemu-linux-release-riscv64/8945511751514863184",
+      "GIT_BACKENDINFO": "1",
+      "GIT_DAPPER_TRACE": "1",
+      "GIT_HTTP_LOW_SPEED_LIMIT": "102400",
+      "GIT_HTTP_LOW_SPEED_TIME": "1800",
+      "GIT_SSH_COMMAND": "ssh -o SendEnv=GIT_DAPPER_TRACE -o SendEnv=GIT_BACKENDINFO",
+      "GIT_TRACE2_EVENT": "[CLEANUP]/trace2-event",
+      "GIT_TRACE_CURL": "[CLEANUP]/trace-curl",
+      "GIT_TRACE_CURL_NO_DATA": "1",
+      "GIT_TRACE_PACKET": "[CLEANUP]/trace-packet"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "bot_update",
+    "timeout": 1500,
+    "~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@    \"sdk\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  },@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"sdk\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/sdk.git\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  },@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"patch_root\": null,@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/main@{#73837}\"@@@",
+      "@@@STEP_LOG_LINE@json.output@  },@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"root\": \"sdk\",@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"source_manifest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"directories\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"sdk\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/sdk.git\",@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@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@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/main@{#73837}\"@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "rm",
+      "-rf",
+      "[CACHE]/builder/sdk/out"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "clobber"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_REPO[depot_tools]/gclient.py",
+      "runhooks"
+    ],
+    "cwd": "[CACHE]/builder",
+    "env": {
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci/vm-ffi-qemu-linux-release-riscv64/8945511751514863184"
+    },
+    "env_suffixes": {
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "gclient runhooks"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "[CACHE]/builder/sdk/tools/task_kill.py",
+      "--kill_browsers=True",
+      "--kill_vsbuild=True"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "kill processes"
+  },
+  {
+    "cmd": [
+      "cat",
+      ".debug.log"
+    ],
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "debug log"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CACHE]/builder/sdk/tools/bots/test_matrix.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "read test-matrix.json",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@test_matrix.json@{@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@  \"builder_configurations\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-kernel-win-release-simarm_x64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bytecode\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--gen-snapshot=${build_root}/gen_snapshot\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"gn\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/gn.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=x64\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndartk-${system}-${mode}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndartk-${system}-${mode}-${arch}\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test2\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"trigger\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"trigger\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"trigger\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo-builder\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"bar-builder\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo.dart\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"out/ReleaseX64/dart\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndartk-${system}-${mode}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test3\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-win-release-x64\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-win-release-arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"co19\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm co19 tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/nnbd\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"co19\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"co19_sharded\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/nnbd\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"co19\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 1@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"analyzer-linux-release\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nunittest-asserts-${mode}-${system}\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndartk-${system}-${mode}-${arch}\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test2\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"trigger\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"trigger\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"trigger\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo-builder\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"bar-builder\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nanalyzer-asserts-${system}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test3\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"dart2js-strong-mac-x64-chrome\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"dart2js-strong-linux-x64-firefox\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"dart2js-strong-win-x64-chrome\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndart2js-${system}-${runtime}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-e co19, language\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--buildername\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"custom\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/custom_thing.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--buildername\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"custom_runner\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/custom_test_runner.py\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"testRunner\": true@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndart2js-${system}-${runtime}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"co19\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test2\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-kernel-mac-release-x64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"foo\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--bar\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--buildername\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"custom\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"out/custom_thing\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-kernel-precomp-android-release-arm64c\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndartkp-android-${mode}-${arch}\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"android\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-linux-debug\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-linux-release\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-linux-release-arm64\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-mac-release\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-mac-release-arm64\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-win-release\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"pkg-win-release-arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"create_sdk\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"ddc_stable_test\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"analyze\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--suppress-analytics\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--fatal-infos\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"pkg\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"analyze pkg/\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"${build_root}/dart-sdk/bin/dart\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"fuzz-linux\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime/tools/dartfuzz/dartfuzz_test.dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--isolates\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"8\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--no-show-stats\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--time\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"2700\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"make a fuzz\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"out/ReleaseX64/dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 3@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"dart2wasm-mac-safari\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"dart2wasm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"create_sdk\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"dartaotruntime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-ndart2wasm-${system}-${runtime}\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"co19\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"corelib\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"lib\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"web\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"dart2wasm tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@  ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@  \"filesets\": {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    \"test\": \"[]\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    \"trigger\": \"[]\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@  }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@}@@@",
+      "@@@STEP_LOG_END@test_matrix.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[CACHE]/builder/sdk/.debug.log"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "delete debug log"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{'variables': {'files': '[]'}}",
+      "[CACHE]/builder/sdk/test"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "write fileset test to sdk root",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@test@{'variables': {'files': '[]'}}@@@",
+      "@@@STEP_LOG_END@test@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "{'variables': {'files': '[]'}}",
+      "[CACHE]/builder/sdk/trigger"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "write fileset trigger to sdk root",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@trigger@{'variables': {'files': '[]'}}@@@",
+      "@@@STEP_LOG_END@trigger@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_REPO[depot_tools]/gclient.py",
+      "revinfo",
+      "--output-json",
+      "/path/to/tmp/json",
+      "--filter=https://chrome-infra-packages.appspot.com/dart/third_party/co19",
+      "--filter=https://chrome-infra-packages.appspot.com/dart/dart-sdk/${platform}",
+      "--filter=https://chrome-infra-packages.appspot.com/dart/browsers/chrome/${platform}",
+      "--filter=https://chrome-infra-packages.appspot.com/dart/browsers/firefox/${platform}"
+    ],
+    "cwd": "[CACHE]/builder",
+    "env": {
+      "DEPOT_TOOLS_REPORT_BUILD": "dart/ci/vm-ffi-qemu-linux-release-riscv64/8945511751514863184"
+    },
+    "env_suffixes": {
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "gclient get package versions",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output[revinfo]@{@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@  \"sdk/tests/co19/src:dart/third_party/co19\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@    \"rev\": \"git_revision:co19_hash\",@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@    \"url\": \"https://chrome-infra-packages.appspot.com/dart/third_party/co19\"@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@  },@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@  \"sdk/tools/sdks:dart/dart-sdk/${platform}\": {@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@    \"rev\": \"version:2.9.0-18.0.dev\",@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@    \"url\": \"https://chrome-infra-packages.appspot.com/dart/dart-sdk/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@  }@@@",
+      "@@@STEP_LOG_LINE@json.output[revinfo]@}@@@",
+      "@@@STEP_LOG_END@json.output[revinfo]@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "download previous results"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "download previous results.gsutil find latest build",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@raw_io.output_text[latest]@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0o777",
+      "[CACHE]/builder/sdk/LATEST"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "download previous results.ensure LATEST dir",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[CACHE]/builder/sdk/LATEST/results.json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "download previous results.ensure results.json exists",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@results.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[CACHE]/builder/sdk/LATEST/flaky.json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "download previous results.ensure flaky.json exists",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_END@flaky.json@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "[CACHE]/builder/sdk/tools/task_kill.py",
+      "--kill_browsers=True",
+      "--kill_vsbuild=True"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "kill processes (2)"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "[CACHE]/builder/sdk/tools/build.py",
+      "--check-clean",
+      "--sanitizer=none",
+      "-ariscv64",
+      "-mrelease",
+      "--use-qemu",
+      "runtime"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main",
+      "RBE": "1",
+      "RBE_exec_strategy": "remote_local_fallback",
+      "RBE_proxy_log_dir": "[CLEANUP]",
+      "RBE_use_application_default_credentials": "false",
+      "RBE_use_gce_credentials": "true"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0",
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]",
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "build dart",
+    "timeout": 3000
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/isolate",
+      "-ensure-file",
+      "infra/tools/luci/isolate/${platform} git_revision:c048e241c7f91df54d608528842315e16429a3b9",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:c04\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/isolate/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/isolate/isolate",
+      "archive",
+      "-allow-missing-file-dir",
+      "-ignored-path-filter-re=(^[CACHE]/builder/sdk[/\\\\](out|xcodebuild)[/\\\\](Release|Debug|Product)\\w*[/\\\\](clang_\\w*[/\\\\])?(generated_tests|obj)[/\\\\])|(^[CACHE]/builder/sdk[/\\\\]tools[/\\\\]sdks)|(^[CACHE]/builder/sdk[/\\\\]xcodebuild[/\\\\](Release|Debug|Product)\\w*[/\\\\]sdk[/\\\\]xcode_links)",
+      "-isolate=[CACHE]/builder/sdk/test",
+      "-cas-instance=chromium-swarm"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload testing fileset test",
+    "~followup_annotations": [
+      "@@@STEP_TEXT@fileset hash: test_hash/47@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "trigger shards for vm jit tests"
+  },
+  {
+    "cmd": [],
+    "name": "trigger shards for vm jit tests.install infra/tools/luci/swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0o777",
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "trigger shards for vm jit tests.install infra/tools/luci/swarming.ensure package directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} swarming_module_pin",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "trigger shards for vm jit tests.install infra/tools/luci/swarming.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-swarming_module_\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/swarming/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "spawn-tasks",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-json-input",
+      "{\"requests\": [{\"name\": \"vm jit tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-linux-release-riscv64-qemu\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"vm jit tests_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-linux-release-riscv64-qemu\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "trigger shards for vm jit tests.trigger shards for vm jit tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"tasks\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"request\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"name\": \"vm jit tests_shard_1\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"0\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    },@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"request\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"name\": \"vm jit tests_shard_2\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"1\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@json.input@{@@@",
+      "@@@STEP_LOG_LINE@json.input@  \"requests\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@    {@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"name\": \"vm jit tests_shard_1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"priority\": \"25\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"realm\": \"dart:ci\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"service_account\": \"\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"task_slices\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@        {@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"expiration_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"caches\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"name\": \"vpython\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"path\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cas_input_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"cas_instance\": \"projects/example-cas-server/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"hash\": \"test_hash\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"size_bytes\": \"47\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/tools/luci/vpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/3pp/tools/cpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:3@3.11.9.chromium.36\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"dart/dart-sdk/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"tools/sdks\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:2.9.0-18.0.dev\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                }@@@",
+      "@@@STEP_LOG_LINE@json.input@              ]@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"command\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"python3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-u\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--progress=status\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--report\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--time\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-results\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-logs\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--clean-exit\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-nvm-linux-release-riscv64-qemu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--silent-failures\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--copy-coredumps\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shards=2\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shard=1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--output-directory=${ISOLATED_OUTDIR}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--previous-results=LATEST/results.json\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"containment\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"containment_type\": \"AUTO\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"VPYTHON_VIRTUALENV_ROOT\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env_prefixes\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"PATH\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/bin\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3/bin\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                ]@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"execution_timeout_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"grace_period_secs\": \"30\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"idempotent\": false,@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"io_timeout_secs\": \"1200\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"relative_cwd\": \"\"@@@",
+      "@@@STEP_LOG_LINE@json.input@          },@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"wait_for_capacity\": false@@@",
+      "@@@STEP_LOG_LINE@json.input@        }@@@",
+      "@@@STEP_LOG_LINE@json.input@      ]@@@",
+      "@@@STEP_LOG_LINE@json.input@    },@@@",
+      "@@@STEP_LOG_LINE@json.input@    {@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"name\": \"vm jit tests_shard_2\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"priority\": \"25\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"realm\": \"dart:ci\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"service_account\": \"\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"task_slices\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@        {@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"expiration_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"caches\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"name\": \"vpython\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"path\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cas_input_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"cas_instance\": \"projects/example-cas-server/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"hash\": \"test_hash\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"size_bytes\": \"47\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/tools/luci/vpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/3pp/tools/cpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:3@3.11.9.chromium.36\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"dart/dart-sdk/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"tools/sdks\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:2.9.0-18.0.dev\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                }@@@",
+      "@@@STEP_LOG_LINE@json.input@              ]@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"command\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"python3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-u\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--progress=status\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--report\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--time\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-results\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-logs\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--clean-exit\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-nvm-linux-release-riscv64-qemu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--silent-failures\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--copy-coredumps\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shards=2\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shard=2\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--output-directory=${ISOLATED_OUTDIR}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--previous-results=LATEST/results.json\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"containment\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"containment_type\": \"AUTO\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"VPYTHON_VIRTUALENV_ROOT\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env_prefixes\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"PATH\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/bin\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3/bin\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                ]@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"execution_timeout_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"grace_period_secs\": \"30\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"idempotent\": false,@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"io_timeout_secs\": \"1200\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"relative_cwd\": \"\"@@@",
+      "@@@STEP_LOG_LINE@json.input@          },@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"wait_for_capacity\": false@@@",
+      "@@@STEP_LOG_LINE@json.input@        }@@@",
+      "@@@STEP_LOG_LINE@json.input@      ]@@@",
+      "@@@STEP_LOG_LINE@json.input@    }@@@",
+      "@@@STEP_LOG_LINE@json.input@  ]@@@",
+      "@@@STEP_LOG_LINE@json.input@}@@@",
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@task UI: vm jit tests_shard_1@https://example.swarmingserver.appspot.com/task?id=0@@@",
+      "@@@STEP_LINK@task UI: vm jit tests_shard_2@https://example.swarmingserver.appspot.com/task?id=1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "trigger shards for vm aot tests"
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "spawn-tasks",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-json-input",
+      "{\"requests\": [{\"name\": \"vm aot tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-aot-linux-release-riscv64-qemu\", \"--silent-failures\", \"--copy-coredumps\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "trigger shards for vm aot tests.trigger shards for vm aot tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"tasks\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"request\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"name\": \"vm aot tests_shard_1\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"2\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@json.input@{@@@",
+      "@@@STEP_LOG_LINE@json.input@  \"requests\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@    {@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"name\": \"vm aot tests_shard_1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"priority\": \"25\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"realm\": \"dart:ci\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"service_account\": \"\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"task_slices\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@        {@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"expiration_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"caches\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"name\": \"vpython\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"path\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cas_input_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"cas_instance\": \"projects/example-cas-server/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"hash\": \"test_hash\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"size_bytes\": \"47\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/tools/luci/vpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/3pp/tools/cpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:3@3.11.9.chromium.36\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"dart/dart-sdk/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"tools/sdks\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:2.9.0-18.0.dev\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                }@@@",
+      "@@@STEP_LOG_LINE@json.input@              ]@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"command\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"python3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-u\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--progress=status\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--report\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--time\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-results\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-logs\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--clean-exit\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-nvm-aot-linux-release-riscv64-qemu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--silent-failures\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--copy-coredumps\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shards=2\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shard=1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--output-directory=${ISOLATED_OUTDIR}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--previous-results=LATEST/results.json\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"containment\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"containment_type\": \"AUTO\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"VPYTHON_VIRTUALENV_ROOT\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env_prefixes\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"PATH\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/bin\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3/bin\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                ]@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"execution_timeout_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"grace_period_secs\": \"30\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"idempotent\": false,@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"io_timeout_secs\": \"1200\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"relative_cwd\": \"\"@@@",
+      "@@@STEP_LOG_LINE@json.input@          },@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"wait_for_capacity\": false@@@",
+      "@@@STEP_LOG_LINE@json.input@        }@@@",
+      "@@@STEP_LOG_LINE@json.input@      ]@@@",
+      "@@@STEP_LOG_LINE@json.input@    }@@@",
+      "@@@STEP_LOG_LINE@json.input@  ]@@@",
+      "@@@STEP_LOG_LINE@json.input@}@@@",
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@task UI: vm aot tests_shard_1@https://example.swarmingserver.appspot.com/task?id=2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "[CACHE]/builder/sdk/tools/test.py",
+      "--progress=status",
+      "--report",
+      "--time",
+      "--write-results",
+      "--write-logs",
+      "--clean-exit",
+      "-nvm-aot-linux-release-riscv64-qemu",
+      "--silent-failures",
+      "--copy-coredumps",
+      "--shards=2",
+      "--shard=2",
+      "--previous-results=LATEST/results.json",
+      "--output-directory",
+      "[CLEANUP]/tmp_tmp_1"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "vm aot tests_shard_2"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_1/logs.json",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "read logs.json for vm aot tests_shard_2"
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_1/results.json",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "read results.json for vm aot tests_shard_2"
+  },
+  {
+    "cmd": [],
+    "name": "collect shards"
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "collect",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-task-summary-json",
+      "/path/to/tmp/json",
+      "-task-output-stdout",
+      "json",
+      "-output-dir",
+      "[CLEANUP]/tmp_tmp_2",
+      "0"
+    ],
+    "cost": {
+      "cpu": 100,
+      "disk": 0,
+      "memory": 50,
+      "net": 0
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.vm jit tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"0\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"output\": \"hello world!\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"results\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm-123\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"cas_output_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"cas_instance\": \"projects/example-project/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"hash\": \"24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca\",@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"size_bytes\": \"73\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"completed_ts\": \"2025-04-23T20:01:13.072079Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"created_ts\": \"2025-04-23T19:10:21.951949Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"duration\": 62.35,@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"exit_code\": \"0\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"vm jit tests_shard_1\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"resultdb_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"invocation\": \"invocations/some-inv-name\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"started_ts\": \"2025-04-23T19:13:55.431522Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"state\": \"COMPLETED\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"0\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@task stdout+stderr: vm jit tests_shard_1@hello world!@@@",
+      "@@@STEP_LOG_END@task stdout+stderr: vm jit tests_shard_1@@@",
+      "@@@STEP_LINK@task cas outputs: vm jit tests_shard_1@https://cas-viewer.appspot.com/projects/example-project/instances/default_instance/blobs/24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca/73/tree@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_2/0/logs.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.read logs.json for vm jit tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_2/0/results.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.read results.json for vm jit tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "collect",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-task-summary-json",
+      "/path/to/tmp/json",
+      "-task-output-stdout",
+      "json",
+      "-output-dir",
+      "[CLEANUP]/tmp_tmp_3",
+      "1"
+    ],
+    "cost": {
+      "cpu": 100,
+      "disk": 0,
+      "memory": 50,
+      "net": 0
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.vm jit tests_shard_2",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"1\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"output\": \"hello world!\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"results\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm-123\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"cas_output_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"cas_instance\": \"projects/example-project/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"hash\": \"24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca\",@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"size_bytes\": \"73\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"completed_ts\": \"2025-04-23T20:01:13.072079Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"created_ts\": \"2025-04-23T19:10:21.951949Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"duration\": 62.35,@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"exit_code\": \"0\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"vm jit tests_shard_2\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"resultdb_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"invocation\": \"invocations/some-inv-name\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"started_ts\": \"2025-04-23T19:13:55.431522Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"state\": \"COMPLETED\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"1\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@task stdout+stderr: vm jit tests_shard_2@hello world!@@@",
+      "@@@STEP_LOG_END@task stdout+stderr: vm jit tests_shard_2@@@",
+      "@@@STEP_LINK@task cas outputs: vm jit tests_shard_2@https://cas-viewer.appspot.com/projects/example-project/instances/default_instance/blobs/24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca/73/tree@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_3/1/logs.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.read logs.json for vm jit tests_shard_2",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_3/1/results.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.read results.json for vm jit tests_shard_2",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "collect",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-task-summary-json",
+      "/path/to/tmp/json",
+      "-task-output-stdout",
+      "json",
+      "-output-dir",
+      "[CLEANUP]/tmp_tmp_4",
+      "2"
+    ],
+    "cost": {
+      "cpu": 100,
+      "disk": 0,
+      "memory": 50,
+      "net": 0
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.vm aot tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"2\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"output\": \"hello world!\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"results\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm-123\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"cas_output_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"cas_instance\": \"projects/example-project/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"hash\": \"24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca\",@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"size_bytes\": \"73\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"completed_ts\": \"2025-04-23T20:01:13.072079Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"created_ts\": \"2025-04-23T19:10:21.951949Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"duration\": 62.35,@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"exit_code\": \"0\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"vm aot tests_shard_1\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"resultdb_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"invocation\": \"invocations/some-inv-name\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"started_ts\": \"2025-04-23T19:13:55.431522Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"state\": \"COMPLETED\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"2\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@task stdout+stderr: vm aot tests_shard_1@hello world!@@@",
+      "@@@STEP_LOG_END@task stdout+stderr: vm aot tests_shard_1@@@",
+      "@@@STEP_LINK@task cas outputs: vm aot tests_shard_1@https://cas-viewer.appspot.com/projects/example-project/instances/default_instance/blobs/24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca/73/tree@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_4/2/logs.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.read logs.json for vm aot tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_4/2/results.json",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "collect shards.read results.json for vm aot tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "deflaking"
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/compare_results.dart",
+      "--flakiness-data=LATEST/flaky.json",
+      "--changed",
+      "--failing",
+      "--count=50",
+      "LATEST/results.json",
+      "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.list tests to deflake (vm jit tests)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@raw_io.output_text@Flaky/Test/1@@@",
+      "@@@STEP_LOG_LINE@raw_io.output_text@Flaky/Test/2@@@",
+      "@@@STEP_LOG_END@raw_io.output_text@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "deflaking.trigger shards for vm jit tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "spawn-tasks",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-json-input",
+      "{\"requests\": [{\"name\": \"vm jit tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-linux-release-riscv64-qemu\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Ubuntu-22\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.trigger shards for vm jit tests.trigger shards for vm jit tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"tasks\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@    {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"request\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"name\": \"vm jit tests_shard_1\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"3\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  ]@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@json.input@{@@@",
+      "@@@STEP_LOG_LINE@json.input@  \"requests\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@    {@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"name\": \"vm jit tests_shard_1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"priority\": \"25\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"realm\": \"dart:ci\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"service_account\": \"\",@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"tags\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@        \"optional:true\"@@@",
+      "@@@STEP_LOG_LINE@json.input@      ],@@@",
+      "@@@STEP_LOG_LINE@json.input@      \"task_slices\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@        {@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"expiration_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"properties\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"caches\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"name\": \"vpython\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"path\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cas_input_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"cas_instance\": \"projects/example-cas-server/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"hash\": \"test_hash\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"size_bytes\": \"47\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/tools/luci/vpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"infra/3pp/tools/cpython3/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:3@3.11.9.chromium.36\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                },@@@",
+      "@@@STEP_LOG_LINE@json.input@                {@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"package_name\": \"dart/dart-sdk/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"path\": \"tools/sdks\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"version\": \"version:2.9.0-18.0.dev\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                }@@@",
+      "@@@STEP_LOG_LINE@json.input@              ]@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"command\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"python3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-u\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"tools/test.py\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--progress=status\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--report\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--time\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-results\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--write-logs\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--clean-exit\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"-nvm-linux-release-riscv64-qemu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--repeat=5\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--tests\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"Flaky/Test/1\\nFlaky/Test/2\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--copy-coredumps\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shards=1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--shard=1\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--output-directory=${ISOLATED_OUTDIR}\",@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"--previous-results=LATEST/results.json\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"containment\": {@@@",
+      "@@@STEP_LOG_LINE@json.input@              \"containment_type\": \"AUTO\"@@@",
+      "@@@STEP_LOG_LINE@json.input@            },@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Ubuntu-22\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              },@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"VPYTHON_VIRTUALENV_ROOT\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"cache/vpython\"@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"env_prefixes\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@              {@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"key\": \"PATH\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": [@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/bin\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3\",@@@",
+      "@@@STEP_LOG_LINE@json.input@                  \"cipd_bin_packages/cpython3/bin\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                ]@@@",
+      "@@@STEP_LOG_LINE@json.input@              }@@@",
+      "@@@STEP_LOG_LINE@json.input@            ],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"execution_timeout_secs\": \"3600\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"grace_period_secs\": \"30\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"idempotent\": false,@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"io_timeout_secs\": \"1200\",@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.input@            \"relative_cwd\": \"\"@@@",
+      "@@@STEP_LOG_LINE@json.input@          },@@@",
+      "@@@STEP_LOG_LINE@json.input@          \"wait_for_capacity\": false@@@",
+      "@@@STEP_LOG_LINE@json.input@        }@@@",
+      "@@@STEP_LOG_LINE@json.input@      ]@@@",
+      "@@@STEP_LOG_LINE@json.input@    }@@@",
+      "@@@STEP_LOG_LINE@json.input@  ]@@@",
+      "@@@STEP_LOG_LINE@json.input@}@@@",
+      "@@@STEP_LOG_END@json.input@@@",
+      "@@@STEP_LINK@task UI: vm jit tests_shard_1@https://example.swarmingserver.appspot.com/task?id=3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/compare_results.dart",
+      "--flakiness-data=LATEST/flaky.json",
+      "--changed",
+      "--failing",
+      "--count=50",
+      "LATEST/results.json",
+      "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.list tests to deflake (vm aot tests)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@raw_io.output_text@Flaky/Test/1@@@",
+      "@@@STEP_LOG_LINE@raw_io.output_text@Flaky/Test/2@@@",
+      "@@@STEP_LOG_END@raw_io.output_text@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "[CACHE]/builder/sdk/tools/test.py",
+      "--progress=status",
+      "--report",
+      "--time",
+      "--write-results",
+      "--write-logs",
+      "--clean-exit",
+      "-nvm-aot-linux-release-riscv64-qemu",
+      "--repeat=5",
+      "--tests",
+      "Flaky/Test/1\nFlaky/Test/2",
+      "--copy-coredumps",
+      "--output-directory",
+      "[CLEANUP]/tmp_tmp_5"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.vm aot tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_5/logs.json",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.read logs.json for vm aot tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_5/results.json",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "env": {
+      "BUILDBOT_BUILDERNAME": "vm-ffi-qemu-linux-release-riscv64-main"
+    },
+    "env_suffixes": {
+      "DEPOT_TOOLS_UPDATE": [
+        "0"
+      ],
+      "PATH": [
+        "RECIPE_REPO[depot_tools]"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.read results.json for vm aot tests",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "deflaking.collect shards",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd_tool/infra/tools/luci/swarming/90026cfdbec6795a35e48e95f30cbb0f779e0a4c35016adb14707e333aee4227/swarming",
+      "collect",
+      "-server",
+      "https://example.swarmingserver.appspot.com",
+      "-task-summary-json",
+      "/path/to/tmp/json",
+      "-task-output-stdout",
+      "json",
+      "-output-dir",
+      "[CLEANUP]/tmp_tmp_6",
+      "3"
+    ],
+    "cost": {
+      "cpu": 100,
+      "disk": 0,
+      "memory": 50,
+      "net": 0
+    },
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.collect shards.vm jit tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"3\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"output\": \"hello world!\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"outputs\": [],@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"results\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm-123\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"cas_output_root\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"cas_instance\": \"projects/example-project/instances/default_instance\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"digest\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"hash\": \"24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca\",@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"size_bytes\": \"73\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        }@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"completed_ts\": \"2025-04-23T20:01:13.072079Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"created_ts\": \"2025-04-23T19:10:21.951949Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"duration\": 62.35,@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"exit_code\": \"0\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"name\": \"vm jit tests_shard_1\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"resultdb_info\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"invocation\": \"invocations/some-inv-name\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      },@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"started_ts\": \"2025-04-23T19:13:55.431522Z\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"state\": \"COMPLETED\",@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"3\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    }@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@",
+      "@@@STEP_LOG_LINE@task stdout+stderr: vm jit tests_shard_1@hello world!@@@",
+      "@@@STEP_LOG_END@task stdout+stderr: vm jit tests_shard_1@@@",
+      "@@@STEP_LINK@task cas outputs: vm jit tests_shard_1@https://cas-viewer.appspot.com/projects/example-project/instances/default_instance/blobs/24b2420bc49d8b8fdc1d011a163708927532b37dc9f91d7d8d6877e3a86559ca/73/tree@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_6/3/logs.json",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.collect shards.read logs.json for vm jit tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[CLEANUP]/tmp_tmp_6/3/results.json",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "deflaking.collect shards.read results.json for vm jit tests_shard_1",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/update_flakiness.dart",
+      "-i",
+      "LATEST/flaky.json",
+      "-o",
+      "/path/to/tmp/",
+      "--build-id",
+      "8945511751514863184",
+      "--commit",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "update flakiness information",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@raw_io.output_text[flaky.json]@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "show",
+      "HEAD",
+      "--format=%at",
+      "-s"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "git show"
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/extend_results.dart",
+      "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"linux-dart-123\"}\n",
+      "[CACHE]/builder/sdk/LATEST/results.json",
+      "",
+      "[CACHE]/builder/sdk/LATEST/flaky.json",
+      "vm-ffi-qemu-linux-release-riscv64",
+      "1357",
+      "1234567",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "/path/to/tmp/"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "add fields to result records",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@results.json@{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}@@@",
+      "@@@STEP_LOG_LINE@results.json@{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}@@@",
+      "@@@STEP_LOG_END@results.json@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "upload new results"
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload revision",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n",
+      "gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload logs.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload results.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "",
+      "gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload flaky.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "",
+      "gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "1357",
+      "gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil update \"latest\" reference",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload revision (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "",
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload logs.json (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload results.json (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "",
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil upload flaky.json (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python3",
+      "-u",
+      "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py",
+      "--",
+      "RECIPE_REPO[depot_tools]/gsutil.py",
+      "----",
+      "cp",
+      "1357",
+      "gs://dart-test-results/configuration/main/dartk-linux-product-x64/latest"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.gsutil update \"latest\" reference (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/dart-test-results/configuration/main/dartk-linux-product-x64/latest@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"upload new results|gsutil update \\\"latest\\\" reference\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/latest\", \"upload new results|gsutil update \\\"latest\\\" reference (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/latest\", \"upload new results|gsutil upload flaky.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/flaky.json\", \"upload new results|gsutil upload flaky.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/flaky.json\", \"upload new results|gsutil upload flaky_current_vm-ffi-qemu-linux-release-riscv64.json\": \"gs://dart-test-results/builders/current_flakiness/single_directory/flaky_current_vm-ffi-qemu-linux-release-riscv64.json\", \"upload new results|gsutil upload logs.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/logs.json\", \"upload new results|gsutil upload logs.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/logs.json\", \"upload new results|gsutil upload results.json\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/results.json\", \"upload new results|gsutil upload results.json (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/results.json\", \"upload new results|gsutil upload revision\": \"gs://dart-test-results/builders/vm-ffi-qemu-linux-release-riscv64/1357/revision\", \"upload new results|gsutil upload revision (2)\": \"gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision\"}@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "upload new results.update results database",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/dart-ci-scripts",
+      "-ensure-file",
+      "dart/ci/builder_scripts/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.update results database.install dart_ci scripts",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"dart/ci/builder_scripts/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/dart-ci-scripts/upload_results_to_database",
+      "--results",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "--project",
+      "dart-ci",
+      "--buildbucket_id",
+      "8945511751514863184",
+      "--base_revision",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.update results database.run update script",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/bqupload",
+      "-ensure-file",
+      "infra/tools/bqupload/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "upload new results.upload test results to big query",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/bqupload/bqupload",
+      "dart-ci.results.results"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "upload new results.upload test results to big query.upload results chunk to big query",
+    "stdin": "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/compare_results.dart",
+      "--flakiness-data",
+      "",
+      "--human",
+      "--verbose",
+      "[CACHE]/builder/sdk/LATEST/results.json",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "--changed",
+      "--failing"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "find new test failures",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@raw_io.output_text@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/compare_results.dart",
+      "--flakiness-data",
+      "",
+      "--human",
+      "--verbose",
+      "[CACHE]/builder/sdk/LATEST/results.json",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "--logs",
+      "{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n",
+      "--logs-only",
+      "--changed",
+      "--failing"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "find new test failures (logs)",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@raw_io.output_text@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/compare_results.dart",
+      "--flakiness-data",
+      "",
+      "--human",
+      "--verbose",
+      "[CACHE]/builder/sdk/LATEST/results.json",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "--changed",
+      "--passing"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "find tests that began passing",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@raw_io.output_text@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/compare_results.dart",
+      "--flakiness-data",
+      "",
+      "--human",
+      "--verbose",
+      "[CACHE]/builder/sdk/LATEST/results.json",
+      "{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t01\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t01\",\"time_ms\":451,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n{\"name\":\"co19/Language/Classes/Abstract_Instance_Members/inherited_t02\",\"configuration\":\"dartk-linux-product-x64\",\"suite\":\"co19\",\"test_name\":\"Language/Classes/Abstract_Instance_Members/inherited_t02\",\"time_ms\":496,\"result\":\"CompileTimeError\",\"expected\":\"CompileTimeError\",\"matches\":true,\"commit_time\":1551185312,\"commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"build_number\":\"2404\",\"builder_name\":\"vm-kernel-linux-product-x64\",\"bot_name\":\"trusty-dart-68765ebb-us-central1-b-2ls0\",\"flaky\":false,\"previous_flaky\":false,\"previous_result\":\"CompileTimeError\",\"previous_commit_hash\":\"f0042a32250a8a6193e6d07e2b6508b13f43c864\",\"previous_commit_time\":1551185312,\"previous_build_number\":2403,\"changed\":false}\n",
+      "--logs",
+      "{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"test\":\"test1\", \"configuration\": \"example_configuration\", \"logs\": \"\u0085\"}\n{\"name\": \"Flaky/Test/1\", \"configuration\": \"example_configuration\"}\n{\"name\": \"Flaky/Test/2\", \"configuration\": \"example_configuration\"}\n",
+      "--logs-only",
+      "--flaky"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "find ignored flaky test failure logs",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@raw_io.output_text@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "luci-auth",
+      "token",
+      "-scopes",
+      "https://www.googleapis.com/auth/cloud-platform",
+      "-lifetime",
+      "3m"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "get access token for default account"
+  },
+  {
+    "cmd": [
+      "[CACHE]/builder/sdk/tools/sdks/dart-sdk/bin/dart",
+      "[CACHE]/builder/sdk/tools/bots/get_builder_status.dart",
+      "-b",
+      "vm-ffi-qemu-linux-release-riscv64",
+      "-n",
+      "1357",
+      "-a",
+      "extra.secret.token.should.not.be.logged"
+    ],
+    "cwd": "[CACHE]/builder/sdk",
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "test results",
+    "~followup_annotations": [
+      "@@@STEP_LINK@Test Results@https://dart-ci.firebaseapp.com/#showLatestFailures=true&configurations=dartk-linux-product-x64@@@",
+      "@@@STEP_LINK@Documentation@https://goto.google.com/dart-status-file-free-workflow@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/dart/examples/example.expected/vm-win-arm64.json b/recipe_modules/dart/examples/example.expected/vm-win-arm64.json
index 2cbe6fc..eb5977a 100644
--- a/recipe_modules/dart/examples/example.expected/vm-win-arm64.json
+++ b/recipe_modules/dart/examples/example.expected/vm-win-arm64.json
@@ -15,9 +15,9 @@
       "--output_json",
       "/path/to/tmp/json",
       "--revision",
-      "sdk@3456abce78ef",
+      "sdk@2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "--refs",
-      "refs/heads/master"
+      "refs/heads/main"
     ],
     "cwd": "[CACHE]\\builder",
     "env": {
@@ -61,17 +61,17 @@
       "@@@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@    \"sdk\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"sdk\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
       "@@@STEP_LOG_LINE@json.output@    \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@    }@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"patch_root\": null,@@@",
       "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"3456abce78ef\",@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
       "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/main@{#73837}\"@@@",
       "@@@STEP_LOG_LINE@json.output@  },@@@",
       "@@@STEP_LOG_LINE@json.output@  \"root\": \"sdk\",@@@",
@@ -80,7 +80,7 @@
       "@@@STEP_LOG_LINE@json.output@      \"sdk\": {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"git_checkout\": {@@@",
       "@@@STEP_LOG_LINE@json.output@          \"repo_url\": \"https://fake.org/sdk.git\",@@@",
-      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"3456abce78ef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@          \"revision\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@STEP_LOG_LINE@json.output@        }@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    },@@@",
@@ -89,7 +89,7 @@
       "@@@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@\"3456abce78ef\"@@@",
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@",
       "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/main@{#73837}\"@@@"
     ]
   },
@@ -247,7 +247,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -325,6 +325,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1108,7 +1141,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.staging\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"vm tests_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.staging\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows-11\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.prod\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"vm tests_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows-11\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.prod\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1230,11 +1263,11 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows-11\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.staging\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.prod\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
       "@@@STEP_LOG_LINE@json.input@            ],@@@",
       "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
@@ -1335,11 +1368,11 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows-11\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.staging\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.prod\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
       "@@@STEP_LOG_LINE@json.input@            ],@@@",
       "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
@@ -1388,7 +1421,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"vm co19 tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"co19\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.staging\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"vm co19 tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"co19\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows-11\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.prod\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1510,11 +1543,11 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows-11\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.staging\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.prod\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
       "@@@STEP_LOG_LINE@json.input@            ],@@@",
       "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
@@ -2115,7 +2148,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.staging\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-arm64\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"os\", \"value\": \"Windows-11\"}, {\"key\": \"pool\", \"value\": \"luci.flutter.prod\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2236,11 +2269,11 @@
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows-11\"@@@",
       "@@@STEP_LOG_LINE@json.input@              },@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.staging\"@@@",
+      "@@@STEP_LOG_LINE@json.input@                \"value\": \"luci.flutter.prod\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
       "@@@STEP_LOG_LINE@json.input@            ],@@@",
       "@@@STEP_LOG_LINE@json.input@            \"env\": [@@@",
@@ -2594,7 +2627,7 @@
       "--build-id",
       "8945511751514863184",
       "--commit",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"win-dart-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"win-dart-123\"}\n{\"name\":\"test1\", \"configuration\": \"example_configuration\",\"bot_name\":\"vm-123\"}\n{\"name\":\"test2\", \"configuration\": \"example_configuration_2\",\"bot_name\":\"vm-123\"}\n{\"name\":\"Flaky/Test/1\", \"configuration\": \"example_configuration\",\"bot_name\":\"win-dart-123\"}\n{\"name\":\"Flaky/Test/2\", \"configuration\": \"example_configuration\",\"bot_name\":\"win-dart-123\"}\n"
     ],
     "cwd": "[CACHE]\\builder\\sdk",
@@ -2651,7 +2684,7 @@
       "vm-win-release-arm64",
       "1357",
       "1234567",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "/path/to/tmp/"
     ],
     "cwd": "[CACHE]\\builder\\sdk",
@@ -2688,7 +2721,7 @@
       "RECIPE_REPO[depot_tools]\\gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/builders/vm-win-release-arm64/1357/revision"
     ],
     "cwd": "[CACHE]\\builder\\sdk",
@@ -2886,7 +2919,7 @@
       "RECIPE_REPO[depot_tools]\\gsutil.py",
       "----",
       "cp",
-      "3456abce78ef",
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789",
       "gs://dart-test-results/configuration/main/dartk-linux-product-x64/1357/revision"
     ],
     "cwd": "[CACHE]\\builder\\sdk",
@@ -3102,7 +3135,7 @@
       "--buildbucket_id",
       "8945511751514863184",
       "--base_revision",
-      "3456abce78ef"
+      "2d72510e447ab60a9728aeea2362d8be2cbd7789"
     ],
     "cwd": "[CACHE]\\builder\\sdk",
     "infra_step": true,
diff --git a/recipe_modules/dart/examples/example.expected/vm-win-x64.json b/recipe_modules/dart/examples/example.expected/vm-win-x64.json
index 5b100d8..85e1958 100644
--- a/recipe_modules/dart/examples/example.expected/vm-win-x64.json
+++ b/recipe_modules/dart/examples/example.expected/vm-win-x64.json
@@ -17,7 +17,7 @@
       "--revision",
       "sdk@3456abce78ef",
       "--refs",
-      "refs/heads/master"
+      "refs/heads/main"
     ],
     "cwd": "[CACHE]\\builder",
     "env": {
@@ -247,7 +247,7 @@
       "@@@STEP_LOG_LINE@test_matrix.json@            \"language\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"co19/sel\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@            \"--exclude_suite=lib\",@@@",
-      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--arch=arm\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"test1\",@@@",
@@ -325,6 +325,39 @@
       "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-arm\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        \"vm-ffi-qemu-linux-release-riscv64\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"steps\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"--use-qemu\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"runtime\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"build dart\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"script\": \"tools/build.py\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm jit tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"arguments\": [@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@            \"-nvm-aot-${system}-${mode}-${arch}-qemu\"@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          ],@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"fileset\": \"test\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"name\": \"vm aot tests\",@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@          \"shards\": 2@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@        }@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      ]@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    },@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@    {@@@",
+      "@@@STEP_LOG_LINE@test_matrix.json@      \"builders\": [@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@        \"co19\"@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      ],@@@",
       "@@@STEP_LOG_LINE@test_matrix.json@      \"meta\": {},@@@",
@@ -1108,7 +1141,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"vm tests_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}, {\"name\": \"vm tests_shard_2\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=2\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1225,18 +1258,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -1334,18 +1355,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -1396,7 +1405,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"vm co19 tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"co19\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"vm co19 tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/third_party/co19\", \"path\": \"tests/co19/src\", \"version\": \"git_revision:co19_hash\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"co19\", \"--silent-failures\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=2\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -1513,18 +1522,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
@@ -2127,7 +2124,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"cpu\", \"value\": \"x86-64\"}, {\"key\": \"host_class\", \"value\": \"default\"}, {\"key\": \"os\", \"value\": \"Windows\"}, {\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
+      "{\"requests\": [{\"name\": \"vm tests_shard_1\", \"priority\": \"25\", \"realm\": \"dart:ci\", \"service_account\": \"\", \"tags\": [\"optional:true\"], \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"caches\": [{\"name\": \"vpython\", \"path\": \"cache/vpython\"}], \"cas_input_root\": {\"cas_instance\": \"projects/example-cas-server/instances/default_instance\", \"digest\": {\"hash\": \"test_hash\", \"size_bytes\": \"47\"}}, \"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci/vpython3/${platform}\", \"path\": \"cipd_bin_packages\", \"version\": \"git_revision:54edd25b784c750239eaaf07a21ed1e548dec39e\"}, {\"package_name\": \"infra/3pp/tools/cpython3/${platform}\", \"path\": \"cipd_bin_packages/cpython3\", \"version\": \"version:3@3.11.9.chromium.36\"}, {\"package_name\": \"dart/dart-sdk/${platform}\", \"path\": \"tools/sdks\", \"version\": \"version:2.9.0-18.0.dev\"}]}, \"command\": [\"python3\", \"-u\", \"tools/test.py\", \"--progress=status\", \"--report\", \"--time\", \"--write-results\", \"--write-logs\", \"--clean-exit\", \"-nvm-win-release-x64\", \"--repeat=5\", \"--tests\", \"Flaky/Test/1\\nFlaky/Test/2\", \"--copy-coredumps\", \"--cleanup-dart-processes\", \"--shards=1\", \"--shard=1\", \"--output-directory=${ISOLATED_OUTDIR}\", \"--previous-results=LATEST/results.json\"], \"containment\": {\"containment_type\": \"AUTO\"}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"dart.tests\"}], \"env\": [{\"key\": \"VPYTHON_VIRTUALENV_ROOT\", \"value\": \"cache/vpython\"}], \"env_prefixes\": [{\"key\": \"PATH\", \"value\": [\"cipd_bin_packages\", \"cipd_bin_packages/bin\", \"cipd_bin_packages/cpython3\", \"cipd_bin_packages/cpython3/bin\"]}], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"io_timeout_secs\": \"1200\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}",
       "-json-output",
       "/path/to/tmp/json"
     ],
@@ -2243,18 +2240,6 @@
       "@@@STEP_LOG_LINE@json.input@            },@@@",
       "@@@STEP_LOG_LINE@json.input@            \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"cpu\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"x86-64\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"host_class\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"default\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"key\": \"os\",@@@",
-      "@@@STEP_LOG_LINE@json.input@                \"value\": \"Windows\"@@@",
-      "@@@STEP_LOG_LINE@json.input@              },@@@",
-      "@@@STEP_LOG_LINE@json.input@              {@@@",
       "@@@STEP_LOG_LINE@json.input@                \"key\": \"pool\",@@@",
       "@@@STEP_LOG_LINE@json.input@                \"value\": \"dart.tests\"@@@",
       "@@@STEP_LOG_LINE@json.input@              }@@@",
diff --git a/recipe_modules/dart/examples/example.py b/recipe_modules/dart/examples/example.py
index db9cdc8..f4d30b5 100644
--- a/recipe_modules/dart/examples/example.py
+++ b/recipe_modules/dart/examples/example.py
@@ -98,7 +98,7 @@
             "script": "tools/test.py",
             "arguments": [
                 "foo", "-ndartk-${system}-${mode}-${arch}", "language",
-                "co19/sel", "--exclude_suite=lib", "--arch=arm64"
+                "co19/sel", "--exclude_suite=lib", "--arch=arm"
             ],
             "shards": 2,
             "fileset": "test"
@@ -141,6 +141,26 @@
             "shards": 2
         }]
     }, {
+        "builders": [
+            "vm-ffi-qemu-linux-release-arm", "vm-ffi-qemu-linux-release-riscv64"
+        ],
+        "meta": {},
+        "steps": [{
+            "name": "build dart",
+            "script": "tools/build.py",
+            "arguments": ["--use-qemu", "runtime"]
+        }, {
+            "name": "vm jit tests",
+            "arguments": ["-nvm-${system}-${mode}-${arch}-qemu"],
+            "fileset": "test",
+            "shards": 2
+        }, {
+            "name": "vm aot tests",
+            "arguments": ["-nvm-aot-${system}-${mode}-${arch}-qemu"],
+            "fileset": "test",
+            "shards": 2
+        }]
+    }, {
         "builders": ["co19",],
         "meta": {},
         "steps": [{
@@ -380,11 +400,20 @@
   return data
 
 
-def _build_with_dimensions(api, builder_name, dimensions):
+def _ci_build(api,
+              builder_name,
+              dimensions={
+                  'host_class': 'default',
+                  'os': 'Ubuntu-22',
+                  'cpu': 'x86-64'
+              },
+              build_number=1357,
+              git_ref='refs/heads/main',
+              revision='2d72510e447ab60a9728aeea2362d8be2cbd7789'):
   return api.buildbucket.build(
       build_pb2.Build(
           id=8945511751514863184,
-          number=1357,
+          number=build_number,
           tags=[],
           builder=builder_common_pb2.BuilderID(
               project='dart',
@@ -397,8 +426,8 @@
               gitiles_commit=common_pb2.GitilesCommit(
                   host='dart.googlesource.com',
                   project='sdk',
-                  ref='refs/heads/main',
-                  id='3456abce78ef',
+                  ref=git_ref,
+                  id=revision,
               ),
               experiments=()),
           infra=build_pb2.BuildInfra(
@@ -489,12 +518,7 @@
   yield api.test(
       'branch-builder-does-not-publish-results',
       api.properties(shard_timeout='600'),
-      api.buildbucket.ci_build(
-          build_number=1357,
-          builder='co19',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart',
-          git_ref="refs/heads/some-branch"),
+      _ci_build(api, builder_name='co19', git_ref="refs/heads/some-branch"),
       _canned_step(api, 'co19'),
       api.step_data('download previous results.gsutil find latest build',
                     api.raw_io.output_text('123', name='latest')),
@@ -509,12 +533,7 @@
   yield api.test(
       'ci-test-data-branch-builder-does-publish-results',
       api.properties(shard_timeout='600'),
-      api.buildbucket.ci_build(
-          build_number=1357,
-          builder='co19',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart',
-          git_ref="refs/heads/ci-test-data"),
+      _ci_build(api, builder_name='co19', git_ref="refs/heads/ci-test-data"),
       _canned_step(api, 'co19'),
       api.step_data('download previous results.gsutil find latest build',
                     api.raw_io.output_text('123', name='latest')),
@@ -529,12 +548,7 @@
   yield api.test(
       'release-builder-does-not-publish-results',
       api.properties(shard_timeout='600'),
-      api.buildbucket.ci_build(
-          build_number=1357,
-          builder='co19-dev',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart',
-          git_ref="refs/heads/dev"),
+      _ci_build(api, builder_name='co19-dev', git_ref="refs/heads/dev"),
       _canned_step(api, 'co19'),
       api.step_data('download previous results.gsutil find latest build',
                     api.raw_io.output_text('123', name='latest')),
@@ -550,11 +564,7 @@
       'bisection-does-not-refer-to-latest-build-or-publish-results',
       api.properties(
           shard_timeout='600', bisect_reason="FAILURE", bisect_base_build=4711),
-      api.buildbucket.ci_build(
-          build_number=1357,
-          builder='dart2js-strong-linux-x64-firefox',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(api, builder_name='dart2js-strong-linux-x64-firefox'),
       _canned_step(api, 'test1', 2, False),
       _canned_step(api, 'test2'),
       _canned_step(api, 'custom_runner', deflake=False),
@@ -573,11 +583,9 @@
       'bisection-on-test-branch-updates-blamelist',
       api.properties(
           shard_timeout='600', bisect_reason="FAILURE", bisect_base_build=4711),
-      api.buildbucket.ci_build(
-          build_number=1357,
-          builder='dart2js-strong-linux-x64-firefox',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart',
+      _ci_build(
+          api,
+          builder_name='dart2js-strong-linux-x64-firefox',
           git_ref="refs/heads/ci-test-data"),
       _canned_step(api, 'test1', 2, False),
       _canned_step(api, 'test2'),
@@ -599,12 +607,7 @@
       'experimental-bisection-build-does-not-update-blamelist',
       api.properties(
           shard_timeout='600', bisect_reason="FAILURE", bisect_base_build=4711),
-      api.buildbucket.ci_build(
-          build_number=1357,
-          builder='dart2js-strong-linux-x64-firefox',
-          git_ref='refs/heads/master',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(api, builder_name='dart2js-strong-linux-x64-firefox'),
       api.runtime(is_experimental=True),
       _canned_step(api, 'test1', 2, False),
       _canned_step(api, 'test2'),
@@ -624,12 +627,7 @@
   yield api.test(
       'analyzer-linux-release',
       api.properties(bot_id='trusty-dart-123'),
-      api.buildbucket.ci_build(
-          revision='3456abce78ef',
-          build_number=1357,
-          builder='analyzer-linux-release',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(api, builder_name='analyzer-linux-release'),
       _canned_step(api, 'test1', 2, False),
       _canned_step(api, 'test2'),
       _canned_step(api, 'test3', 2),
@@ -644,8 +642,14 @@
   yield api.test(
       'dart2wasm-mac-safari',
       api.properties(bot_id='mac-safari-123'),
-      _build_with_dimensions(api, 'dart2wasm-mac-safari',
-                             {'safari': 'Safari 1.2.3'}),
+      _ci_build(
+          api,
+          builder_name='dart2wasm-mac-safari',
+          dimensions={
+              'safari': 'Safari 1.2.3',
+              'os': 'Mac',
+              'cpu': 'arm64'
+          }),
       _upload_isolate_step_data(api, 'test'),
       _canned_step(api, 'dart2wasm tests', shards=2, local_shard=True),
       api.step_data('add fields to result records',
@@ -659,8 +663,14 @@
       # Build the message directly to set the host_class task dimension to test
       # shards are sent to the same host_class dimension, which cannot be done
       # with the usual api.buildbucket.ci_build helper.
-      _build_with_dimensions(api, 'analyzer-linux-release-main',
-                             {'host_class': 'experimental'}),
+      _ci_build(
+          api,
+          builder_name='analyzer-linux-release-main',
+          dimensions={
+              'host_class': 'experimental',
+              'os': 'Ubuntu-22',
+              'cpu': 'x86-64'
+          }),
       _canned_step(api, 'test1', 2, False),
       _canned_step(api, 'test2'),
       _canned_step(api, 'test3', 2),
@@ -682,7 +692,7 @@
             revision='3456abce78ef',
             build_number=1357,
             builder=builder,
-            git_ref='refs/heads/master',
+            git_ref='refs/heads/main',
             git_repo='https://dart.googlesource.com/sdk',
             project='dart'),
         _canned_step(api, 'test1', 2, False),
@@ -777,7 +787,7 @@
           revision='3456abce78ef',
           build_number=1357,
           builder='vm-win-release-x64',
-          git_ref='refs/heads/master',
+          git_ref='refs/heads/main',
           git_repo='https://dart.googlesource.com/sdk',
           project='dart'),
       _canned_step(api, 'vm tests', 2, False),
@@ -792,13 +802,14 @@
       api.platform('win', 64),
       api.properties(clobber=True, bot_id='win-dart-123'),
       api.path.exists(api.path.checkout_dir / 'out'),
-      api.buildbucket.ci_build(
-          revision='3456abce78ef',
-          build_number=1357,
-          builder='vm-win-release-arm64',
-          git_ref='refs/heads/master',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(
+          api,
+          builder_name='vm-win-release-arm64',
+          dimensions={
+              'os': 'Windows-11',
+              'cpu': 'arm64',
+              'pool': 'luci.flutter.prod',
+          }),
       _canned_step(api, 'vm tests', 2, False),
       _canned_step(api, 'vm co19 tests', 2),
       _upload_isolate_step_data(api, 'test'),
@@ -807,15 +818,31 @@
   )
 
   yield api.test(
+      'vm-qemu-riscv64',
+      api.platform('linux', 64),
+      api.properties(clobber=True, bot_id='linux-dart-123'),
+      api.path.exists(api.path.checkout_dir / 'out'),
+      _ci_build(api, 'vm-ffi-qemu-linux-release-riscv64'),
+      _canned_step(api, 'vm jit tests', 2, False),
+      _canned_step(api, 'vm aot tests', 2),
+      _upload_isolate_step_data(api, 'test'),
+      api.step_data('add fields to result records',
+                    api.raw_io.output_text(RESULT_DATA)),
+  )
+
+  yield api.test(
       'basic-mac',
       api.platform('mac', 64),
       api.properties(bot_id='mac-dart-123'),
-      api.buildbucket.ci_build(
-          revision='a' * 40,
-          build_number=1357,
-          builder='dart2js-strong-mac-x64-chrome-dev',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(
+          api,
+          builder_name='dart2js-strong-mac-x64-chrome-dev',
+          dimensions={
+              'host_class': 'default',
+              'os': 'Mac',
+              'cpu': 'x86-64'
+          },
+          revision='a' * 40),
       api.properties(clobber=True, custom_vars={'download_chrome': True}),
       api.path.exists(api.path.checkout_dir / 'xcodebuild'),
       _canned_step(api, 'test1', 2, False),
@@ -828,19 +855,22 @@
   yield api.test(
       'example-mac',
       api.platform('mac', 64),
-      api.buildbucket.ci_build(
-          builder='vm-kernel-mac-release-x64',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(
+          api,
+          builder_name='vm-kernel-mac-release-x64',
+          dimensions={
+              'host_class': 'default',
+              'os': 'Mac',
+              'cpu': 'x86-64'
+          },
+          build_number=0,
+          revision='2d72510e447ab60a9728aeea2362d8be2cbd7789'),
   )
 
   yield api.test(
       'example-android',
       api.platform('linux', 64),
-      api.buildbucket.ci_build(
-          builder='vm-kernel-precomp-android-release-arm64c',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(api, builder_name='vm-kernel-precomp-android-release-arm64c'),
       _canned_step(api, 'android', 2, False),
       _upload_isolate_step_data(api),
       api.step_data('add fields to result records',
@@ -851,33 +881,43 @@
   yield api.test(
       'pkg-linux-debug',
       api.platform('linux', 64),
-      api.buildbucket.ci_build(
-          builder='pkg-linux-debug',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(api, builder_name='pkg-linux-debug'),
   )
   yield api.test(
       'pkg-mac-release-arm64',
       api.platform('mac', 64),
-      api.buildbucket.ci_build(
-          builder='pkg-mac-release-arm64',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(
+          api,
+          builder_name='pkg-mac-release-arm64',
+          dimensions={
+              'host_class': 'default',
+              'os': 'Mac',
+              'cpu': 'arm64'
+          }),
   )
   yield api.test(
       'pkg-win-release',
       api.platform('win', 64),
-      api.buildbucket.ci_build(
-          builder='pkg-win-release',
-          git_repo='https://dart.googlesource.com/sdk',
-          project='dart'),
+      _ci_build(
+          api,
+          builder_name='pkg-win-release',
+          dimensions={
+              'host_class': 'default',
+              'os': 'Windows',
+              'cpu': 'x86-64'
+          }),
   )
 
   yield api.test(
       'non-test-step-error-is-step-failure',
-      api.buildbucket.ci_build(
-          builder='vm-kernel-win-release-simarm_x64',
-          git_repo='https://dart.googlesource.com/sdk'),
+      _ci_build(
+          api,
+          builder_name='vm-kernel-win-release-simarm_x64',
+          dimensions={
+              'host_class': 'default',
+              'os': 'Windows',
+              'cpu': 'x86_64'
+          }),
       _upload_isolate_step_data(api, 'test'),
       _upload_isolate_step_data(api, 'trigger'),
       api.buildbucket.simulated_schedule_output(