| Index: infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
 | 
| diff --git a/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json b/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..81a2a618c3b7de0671583fd6af7de10c7140207c
 | 
| --- /dev/null
 | 
| +++ b/infra/bots/recipes/swarm_perf.expected/Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot.json
 | 
| @@ -0,0 +1,202 @@
 | 
| +[
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[SLAVE_BUILD]\\skia\\tools\\buildbot_spec.py",
 | 
| +      "/path/to/tmp/json",
 | 
| +      "Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]\\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@    \"nanobench\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"builder_cfg\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"arch\": \"x86_64\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"compiler\": \"MSVC\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"configuration\": \"Release\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"cpu_or_gpu\": \"GPU\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"cpu_or_gpu_value\": \"HD4600\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"is_trybot\": true, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"model\": \"ShuttleB\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"os\": \"Win8\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"role\": \"Perf\"@@@",
 | 
| +      "@@@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\": true, @@@",
 | 
| +      "@@@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/Qt5.1.0/5.1.0/msvc2012_64/ skia_arch_type=x86_64 skia_dump_stats=1 skia_warnings_as_errors=0 skia_win_debuggers_path=c:/DbgHelp\"@@@",
 | 
| +      "@@@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\": true@@@",
 | 
| +      "@@@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",
 | 
| +      "[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\skp\\VERSION",
 | 
| +      "/path/to/tmp/"
 | 
| +    ],
 | 
| +    "name": "Get downloaded SKP VERSION"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
 | 
| +      "42",
 | 
| +      "[SLAVE_BUILD]\\tmp\\SKP_VERSION"
 | 
| +    ],
 | 
| +    "name": "write SKP_VERSION"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
 | 
| +      "[SLAVE_BUILD]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
 | 
| +      "/path/to/tmp/"
 | 
| +    ],
 | 
| +    "name": "Get downloaded skimage VERSION"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
 | 
| +      "42",
 | 
| +      "[SLAVE_BUILD]\\tmp\\SK_IMAGE_VERSION"
 | 
| +    ],
 | 
| +    "name": "write SK_IMAGE_VERSION"
 | 
| +  },
 | 
| +  {
 | 
| +    "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",
 | 
| +      "[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data"
 | 
| +    ],
 | 
| +    "env": {
 | 
| +      "PYTHONPATH": "[SLAVE_BUILD]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
 | 
| +    },
 | 
| +    "name": "rmtree data",
 | 
| +    "~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 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",
 | 
| +      "[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
 | 
| +      "511"
 | 
| +    ],
 | 
| +    "name": "makedirs data",
 | 
| +    "~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": [
 | 
| +      "[SLAVE_BUILD]\\out\\Release_x64\\nanobench",
 | 
| +      "--undefok",
 | 
| +      "-i",
 | 
| +      "[SLAVE_BUILD]\\skia\\resources",
 | 
| +      "--skps",
 | 
| +      "[SLAVE_BUILD]\\skp",
 | 
| +      "--images",
 | 
| +      "[SLAVE_BUILD]\\skimage\\nanobench",
 | 
| +      "--nocpu",
 | 
| +      "--dummy-flags",
 | 
| +      "--outResultsFile",
 | 
| +      "[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data\\nanobench_abc123.json",
 | 
| +      "--properties",
 | 
| +      "gitHash",
 | 
| +      "abc123",
 | 
| +      "build_number",
 | 
| +      "5",
 | 
| +      "issue",
 | 
| +      "500",
 | 
| +      "patchset",
 | 
| +      "1",
 | 
| +      "--key",
 | 
| +      "arch",
 | 
| +      "x86_64",
 | 
| +      "compiler",
 | 
| +      "MSVC",
 | 
| +      "cpu_or_gpu",
 | 
| +      "GPU",
 | 
| +      "cpu_or_gpu_value",
 | 
| +      "HD4600",
 | 
| +      "model",
 | 
| +      "ShuttleB",
 | 
| +      "os",
 | 
| +      "Win8"
 | 
| +    ],
 | 
| +    "env": {
 | 
| +      "BUILDTYPE": "Release_x64",
 | 
| +      "CHROME_HEADLESS": "1",
 | 
| +      "GYP_DEFINES": "qt_sdk=C:/Qt/Qt5.1.0/5.1.0/msvc2012_64/ skia_arch_type=x86_64 skia_dump_stats=1 skia_warnings_as_errors=0 skia_win_debuggers_path=c:/DbgHelp",
 | 
| +      "SKIA_OUT": "[SLAVE_BUILD]\\out"
 | 
| +    },
 | 
| +    "name": "nanobench"
 | 
| +  },
 | 
| +  {
 | 
| +    "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",
 | 
| +      "[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
 | 
| +      "511"
 | 
| +    ],
 | 
| +    "name": "makedirs perf_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@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "name": "$result",
 | 
| +    "recipe_result": null,
 | 
| +    "status_code": 0
 | 
| +  }
 | 
| +]
 | 
| 
 |