| Index: infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json | 
| diff --git a/infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json b/infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..48a23bf9d38f7f16f757e8627048c306ffd21d85 | 
| --- /dev/null | 
| +++ b/infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json | 
| @@ -0,0 +1,473 @@ | 
| +[ | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "rev-parse", | 
| +      "HEAD" | 
| +    ], | 
| +    "cwd": "[ROOT]/skia", | 
| +    "name": "git rev-parse", | 
| +    "stdout": "/path/to/tmp/" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-c", | 
| +      "\"print 'abc123'\"" | 
| +    ], | 
| +    "name": "got_revision", | 
| +    "~followup_annotations": [ | 
| +      "@@@SET_BUILD_PROPERTY@got_revision@\"abc123\"@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "import os\nfor r, _, files in os.walk(os.getcwd()):\n  for fname in files:\n    f = os.path.join(r, fname)\n    if os.path.isfile(f):\n      if os.access(f, os.X_OK):\n        os.chmod(f, 0755)\n      else:\n        os.chmod(f, 0644)\n" | 
| +    ], | 
| +    "cwd": "[ROOT]/skia", | 
| +    "name": "fix filemodes", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_LOG_LINE@python.inline@import os@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@for r, _, files in os.walk(os.getcwd()):@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@  for fname in files:@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@    f = os.path.join(r, fname)@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@    if os.path.isfile(f):@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@      if os.access(f, os.X_OK):@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@        os.chmod(f, 0755)@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@      else:@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@        os.chmod(f, 0644)@@@", | 
| +      "@@@STEP_LOG_END@python.inline@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", | 
| +      "--path", | 
| +      "[SLAVE_BUILD]/swarming.client", | 
| +      "--url", | 
| +      "https://chromium.googlesource.com/external/swarming.client.git" | 
| +    ], | 
| +    "name": "git setup (swarming_client)" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "retry", | 
| +      "fetch", | 
| +      "origin", | 
| +      "master" | 
| +    ], | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client", | 
| +    "name": "git fetch (swarming_client)" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "checkout", | 
| +      "-f", | 
| +      "FETCH_HEAD" | 
| +    ], | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client", | 
| +    "name": "git checkout (swarming_client)" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "rev-parse", | 
| +      "HEAD" | 
| +    ], | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client", | 
| +    "name": "read revision", | 
| +    "stdout": "/path/to/tmp/", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "clean", | 
| +      "-f", | 
| +      "-d", | 
| +      "-x" | 
| +    ], | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client", | 
| +    "name": "git clean (swarming_client)" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "submodule", | 
| +      "sync" | 
| +    ], | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client", | 
| +    "name": "submodule sync (swarming_client)" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "git", | 
| +      "submodule", | 
| +      "update", | 
| +      "--init", | 
| +      "--recursive" | 
| +    ], | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client", | 
| +    "name": "submodule update (swarming_client)" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "[SLAVE_BUILD]/swarming.client/swarming.py", | 
| +      "--version" | 
| +    ], | 
| +    "name": "swarming.py --version", | 
| +    "stdout": "/path/to/tmp/", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_TEXT@0.8.6@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "download_from_google_storage", | 
| +      "--no_resume", | 
| +      "--platform=linux*", | 
| +      "--no_auth", | 
| +      "--bucket", | 
| +      "chromium-luci", | 
| +      "-d", | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go/linux64" | 
| +    ], | 
| +    "name": "download luci-go linux" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "download_from_google_storage", | 
| +      "--no_resume", | 
| +      "--platform=darwin", | 
| +      "--no_auth", | 
| +      "--bucket", | 
| +      "chromium-luci", | 
| +      "-d", | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go/mac64" | 
| +    ], | 
| +    "name": "download luci-go mac" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "download_from_google_storage", | 
| +      "--no_resume", | 
| +      "--platform=win32", | 
| +      "--no_auth", | 
| +      "--bucket", | 
| +      "chromium-luci", | 
| +      "-d", | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go/win64" | 
| +    ], | 
| +    "name": "download luci-go win" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n  chromium_utils.RemoveDirectory(sys.argv[1])\n", | 
| +      "[SLAVE_BUILD]/luci-go" | 
| +    ], | 
| +    "env": { | 
| +      "PYTHONPATH": "[ROOT]/skia/infra/bots/.recipe_deps/build/scripts" | 
| +    }, | 
| +    "name": "rmtree luci-go", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@import os, sys@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@  chromium_utils.RemoveDirectory(sys.argv[1])@@@", | 
| +      "@@@STEP_LOG_END@python.inline@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "\nimport shutil\nimport sys\nshutil.copytree(sys.argv[1], sys.argv[2], symlinks=bool(sys.argv[3]))\n", | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go", | 
| +      "[SLAVE_BUILD]/luci-go", | 
| +      "0" | 
| +    ], | 
| +    "name": "Copy Go binary" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py", | 
| +      "--", | 
| +      "RECIPE_PACKAGE_REPO[depot_tools]/gsutil.py", | 
| +      "----", | 
| +      "help" | 
| +    ], | 
| +    "name": "gsutil help" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "[ROOT]/skia/tools/buildbot_spec.py", | 
| +      "/path/to/tmp/json", | 
| +      "Build-Win-MSVC-x86_64-Release" | 
| +    ], | 
| +    "cwd": "[ROOT]/skia", | 
| +    "name": "exec buildbot_spec.py", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"build_targets\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"most\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"builder_cfg\": {@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"compiler\": \"MSVC\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"configuration\": \"Release\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"is_trybot\": false, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"os\": \"Win\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"role\": \"Build\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"target_arch\": \"x86_64\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  }, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"configuration\": \"Release_x64\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"dm_flags\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"--dummy-flags\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"do_perf_steps\": false, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"do_test_steps\": false, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"env\": {@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"GYP_DEFINES\": \"qt_sdk=C:/Qt/4.8.5/ skia_arch_type=x86_64 skia_warnings_as_errors=1 skia_win_debuggers_path=c:/DbgHelp skia_win_ltcg=0\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  }, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"nanobench_flags\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"--dummy-flags\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"upload_dm_results\": true, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"upload_perf_results\": false@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@", | 
| +      "@@@STEP_LOG_END@json.output@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", | 
| +      "[ROOT]/skia/infra/bots/assets/win_toolchain/VERSION", | 
| +      "/path/to/tmp/" | 
| +    ], | 
| +    "name": "read win_toolchain VERSION" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n  if os.path.exists(path):\n    print \"%s exists but is not a dir\" % path\n    sys.exit(1)\n  os.makedirs(path, mode)\n", | 
| +      "[SLAVE_BUILD]/swarming_temp_dir", | 
| +      "511" | 
| +    ], | 
| +    "name": "makedirs swarming tmp dir", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@  if os.path.exists(path):@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@    print \"%s exists but is not a dir\" % path@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@    sys.exit(1)@@@", | 
| +      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(path, mode)@@@", | 
| +      "@@@STEP_LOG_END@python.inline@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", | 
| +      "{\n    \"args\": [\n        \"--isolate\", \n        \"[ROOT]/skia/infra/bots/compile_skia.isolate\", \n        \"--isolated\", \n        \"[SLAVE_BUILD]/swarming_temp_dir/skia-task-compile_skia.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"Windows\", \n        \"--blacklist\", \n        \".git\", \n        \"--blacklist\", \n        \"out\", \n        \"--blacklist\", \n        \"*.pyc\", \n        \"--blacklist\", \n        \".recipe_deps\", \n        \"--extra-variable\", \n        \"WORKDIR\", \n        \"[SLAVE_BUILD]\"\n    ], \n    \"dir\": \"[SLAVE_BUILD]\", \n    \"version\": 1\n}", | 
| +      "[SLAVE_BUILD]/swarming_temp_dir/compile_skia.isolated.gen.json" | 
| +    ], | 
| +    "name": "Write compile_skia.isolated.gen.json" | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "RECIPE_MODULE[build::isolate]/resources/isolate.py", | 
| +      "[SLAVE_BUILD]/swarming.client", | 
| +      "batcharchive", | 
| +      "--dump-json", | 
| +      "/path/to/tmp/json", | 
| +      "--isolate-server", | 
| +      "https://isolateserver.appspot.com", | 
| +      "--verbose", | 
| +      "[SLAVE_BUILD]/swarming_temp_dir/compile_skia.isolated.gen.json" | 
| +    ], | 
| +    "name": "isolate tests", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"compile_skia\": \"[dummy hash for compile_skia]\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@", | 
| +      "@@@STEP_LOG_END@json.output@@@", | 
| +      "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"compile_skia\": \"[dummy hash for compile_skia]\"}@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "[SLAVE_BUILD]/swarming.client/swarming.py", | 
| +      "trigger", | 
| +      "--swarming", | 
| +      "https://chromium-swarm.appspot.com", | 
| +      "--isolate-server", | 
| +      "https://isolateserver.appspot.com", | 
| +      "--priority", | 
| +      "90", | 
| +      "--shards", | 
| +      "1", | 
| +      "--task-name", | 
| +      "compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5", | 
| +      "--dump-json", | 
| +      "/path/to/tmp/json", | 
| +      "--expiration", | 
| +      "72000", | 
| +      "--io-timeout", | 
| +      "2400", | 
| +      "--hard-timeout", | 
| +      "14400", | 
| +      "--dimension", | 
| +      "gpu", | 
| +      "none", | 
| +      "--dimension", | 
| +      "os", | 
| +      "Windows", | 
| +      "--dimension", | 
| +      "pool", | 
| +      "Skia", | 
| +      "--tag", | 
| +      "allow_milo:1", | 
| +      "--tag", | 
| +      "buildername:Build-Win-MSVC-x86_64-Release", | 
| +      "--tag", | 
| +      "buildnumber:5", | 
| +      "--tag", | 
| +      "data:[dummy hash for compile_skia]", | 
| +      "--tag", | 
| +      "master:client.skia", | 
| +      "--tag", | 
| +      "name:compile_skia", | 
| +      "--tag", | 
| +      "os:Windows", | 
| +      "--tag", | 
| +      "slavename:skiabot-linux-swarm-000", | 
| +      "--tag", | 
| +      "stepname:compile_skia on Windows", | 
| +      "--idempotent", | 
| +      "--cipd-package", | 
| +      "t:skia/bots/win_toolchain:version:0", | 
| +      "[dummy hash for compile_skia]", | 
| +      "--", | 
| +      "--workdir", | 
| +      "../../..", | 
| +      "swarm_compile", | 
| +      "buildername=Build-Win-MSVC-x86_64-Release", | 
| +      "mastername=client.skia.compile", | 
| +      "buildnumber=1", | 
| +      "slavename=skiabot-dummy-compile-slave", | 
| +      "reason=Triggered by Skia swarm_trigger Recipe", | 
| +      "swarm_out_dir=${ISOLATED_OUTDIR}", | 
| +      "revision=abc123" | 
| +    ], | 
| +    "name": "[trigger] compile_skia on Windows", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"base_task_name\": \"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"tasks\": {@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    \"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\": {@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"shard_index\": 0, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"10000\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    }@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  }@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@", | 
| +      "@@@STEP_LOG_END@json.output@@@", | 
| +      "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@", | 
| +      "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/10000@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "cmd": [ | 
| +      "python", | 
| +      "-u", | 
| +      "[SLAVE_BUILD]/swarming.client/swarming.py", | 
| +      "collect", | 
| +      "--swarming", | 
| +      "https://chromium-swarm.appspot.com", | 
| +      "--decorate", | 
| +      "--print-status-updates", | 
| +      "--json", | 
| +      "{\"base_task_name\": \"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\", \"tasks\": {\"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}", | 
| +      "--task-summary-json", | 
| +      "/path/to/tmp/json" | 
| +    ], | 
| +    "name": "compile_skia on Windows", | 
| +    "~followup_annotations": [ | 
| +      "@@@STEP_TEXT@swarming pending 71s@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  \"shards\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    {@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"abandoned_ts\": null, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm30\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"durations\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        5.7, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        31.5@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      ], @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"exit_codes\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        0, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        0@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      ], @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"failure\": false, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"id\": \"148aa78d7aa0000\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"internal_failure\": false, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"isolated_out\": {@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        \"isolated\": \"abc123\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        \"namespace\": \"default-gzip\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        \"view_url\": \"blah\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      }, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"outputs\": [@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        \"Heart beat succeeded on win32.\\n\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@        \"Foo\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      ], @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"state\": 112, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"try_number\": 1, @@@", | 
| +      "@@@STEP_LOG_LINE@json.output@      \"user\": \"unknown\"@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@    }@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@  ]@@@", | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@", | 
| +      "@@@STEP_LOG_END@json.output@@@", | 
| +      "@@@STEP_LINK@shard #0 isolated out@blah@@@", | 
| +      "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@" | 
| +    ] | 
| +  }, | 
| +  { | 
| +    "name": "$result", | 
| +    "recipe_result": null, | 
| +    "status_code": 0 | 
| +  } | 
| +] | 
|  |