[
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "ensure-directory",
      "--mode",
      "0777",
      "[START_DIR]/tmp"
    ],
    "infra_step": true,
    "name": "makedirs tmp_dir"
  },
  {
    "cmd": [
      "python",
      "-u",
      "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
    ],
    "name": "get swarming bot id",
    "stdout": "/path/to/tmp/",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "mkdir",
      "-p",
      "/sdcard/revenge_of_the_skiabot/resources"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nhost   = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n  p = os.path.relpath(d, host)\n  if p != '.' and p.startswith('.'):\n    continue\n  for f in fs:\n    print os.path.join(p,f)\n    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n                           os.path.realpath(os.path.join(host, p, f)),\n                           os.path.join(device, p, f)])\n",
      "[START_DIR]/skia/resources",
      "/sdcard/revenge_of_the_skiabot/resources"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
      "@@@STEP_LOG_LINE@python.inline@    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.realpath(os.path.join(host, p, f)),@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.join(device, p, f)])@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
      "/path/to/tmp/"
    ],
    "infra_step": true,
    "name": "Get skp VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "42",
      "[START_DIR]/tmp/SKP_VERSION"
    ],
    "infra_step": true,
    "name": "write SKP_VERSION"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "cat",
      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
    "stdout": "/path/to/tmp/"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "rm",
      "-f",
      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "rm",
      "-rf",
      "/sdcard/revenge_of_the_skiabot/skps"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "rm /sdcard/revenge_of_the_skiabot/skps"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "mkdir",
      "-p",
      "/sdcard/revenge_of_the_skiabot/skps"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nhost   = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n  p = os.path.relpath(d, host)\n  if p != '.' and p.startswith('.'):\n    continue\n  for f in fs:\n    print os.path.join(p,f)\n    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n                           os.path.realpath(os.path.join(host, p, f)),\n                           os.path.join(device, p, f)])\n",
      "[START_DIR]/skp",
      "/sdcard/revenge_of_the_skiabot/skps"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
      "@@@STEP_LOG_LINE@python.inline@    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.realpath(os.path.join(host, p, f)),@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.join(device, p, f)])@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "push",
      "[START_DIR]/tmp/SKP_VERSION",
      "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
      "/path/to/tmp/"
    ],
    "infra_step": true,
    "name": "Get skimage VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "42",
      "[START_DIR]/tmp/SK_IMAGE_VERSION"
    ],
    "infra_step": true,
    "name": "write SK_IMAGE_VERSION"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "cat",
      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
    "stdout": "/path/to/tmp/"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "rm",
      "-f",
      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "rm",
      "-rf",
      "/sdcard/revenge_of_the_skiabot/images"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "rm /sdcard/revenge_of_the_skiabot/images"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "mkdir",
      "-p",
      "/sdcard/revenge_of_the_skiabot/images"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nhost   = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n  p = os.path.relpath(d, host)\n  if p != '.' and p.startswith('.'):\n    continue\n  for f in fs:\n    print os.path.join(p,f)\n    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n                           os.path.realpath(os.path.join(host, p, f)),\n                           os.path.join(device, p, f)])\n",
      "[START_DIR]/skimage",
      "/sdcard/revenge_of_the_skiabot/images"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
      "@@@STEP_LOG_LINE@python.inline@    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.realpath(os.path.join(host, p, f)),@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.join(device, p, f)])@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "push",
      "[START_DIR]/tmp/SK_IMAGE_VERSION",
      "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
      "/path/to/tmp/"
    ],
    "infra_step": true,
    "name": "Get svg VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "42",
      "[START_DIR]/tmp/SVG_VERSION"
    ],
    "infra_step": true,
    "name": "write SVG_VERSION"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "cat",
      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
    "stdout": "/path/to/tmp/"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "rm",
      "-f",
      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "rm",
      "-rf",
      "/sdcard/revenge_of_the_skiabot/svgs"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "rm /sdcard/revenge_of_the_skiabot/svgs"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "shell",
      "mkdir",
      "-p",
      "/sdcard/revenge_of_the_skiabot/svgs"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nhost   = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n  p = os.path.relpath(d, host)\n  if p != '.' and p.startswith('.'):\n    continue\n  for f in fs:\n    print os.path.join(p,f)\n    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',\n                           os.path.realpath(os.path.join(host, p, f)),\n                           os.path.join(device, p, f)])\n",
      "[START_DIR]/svg",
      "/sdcard/revenge_of_the_skiabot/svgs"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@host   = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
      "@@@STEP_LOG_LINE@python.inline@  p = os.path.relpath(d, host)@@@",
      "@@@STEP_LOG_LINE@python.inline@  if p != '.' and p.startswith('.'):@@@",
      "@@@STEP_LOG_LINE@python.inline@    continue@@@",
      "@@@STEP_LOG_LINE@python.inline@  for f in fs:@@@",
      "@@@STEP_LOG_LINE@python.inline@    print os.path.join(p,f)@@@",
      "@@@STEP_LOG_LINE@python.inline@    subprocess.check_call(['/usr/bin/adb.1.0.35', 'push',@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.realpath(os.path.join(host, p, f)),@@@",
      "@@@STEP_LOG_LINE@python.inline@                           os.path.join(device, p, f)])@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "push",
      "[START_DIR]/tmp/SVG_VERSION",
      "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
  },
  {
    "cmd": [
      "python",
      "-u",
      "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
    ],
    "name": "get swarming task id",
    "stdout": "/path/to/tmp/",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n  raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n    '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n    '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n  raise Exception('(actual, expected) (%s, %s)'\n                  % (actual_gov, gov))\n",
      "/usr/bin/adb.1.0.35",
      "0",
      "userspace"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "Set CPU 0's governor to userspace",
    "timeout": 30,
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@import time@@@",
      "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@",
      "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
      "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
      "@@@STEP_LOG_LINE@python.inline@print log@@@",
      "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('adb root failed')@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@",
      "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@",
      "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('(actual, expected) (%s, %s)'@@@",
      "@@@STEP_LOG_LINE@python.inline@                  % (actual_gov, gov))@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n  raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n    'cat %s/scaling_available_frequencies' % root])\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n  available_freqs = sorted(\n      int(i) for i in available_freqs.strip().split())\nelse:\n  raise Exception('Could not get list of available frequencies: %s' %\n                  available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n  if f <= target:\n    freq = f\n    break\n\nprint 'Setting frequency to %d' % freq\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n    '%s/scaling_min_freq' % root])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n    '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n    '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n    '%s/scaling_cur_freq' % root]).strip()\nif actual_freq != str(freq):\n  raise Exception('(actual, expected) (%s, %d)'\n                  % (actual_freq, freq))\n",
      "/usr/bin/adb.1.0.35",
      "0.6",
      "0"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "Scale CPU 0 to 0.600000",
    "timeout": 30,
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@import time@@@",
      "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
      "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
      "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
      "@@@STEP_LOG_LINE@python.inline@print log@@@",
      "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('adb root failed')@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
      "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
      "@@@STEP_LOG_LINE@python.inline@    'cat %s/scaling_available_frequencies' % root])@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
      "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
      "@@@STEP_LOG_LINE@python.inline@  available_freqs = sorted(@@@",
      "@@@STEP_LOG_LINE@python.inline@      int(i) for i in available_freqs.strip().split())@@@",
      "@@@STEP_LOG_LINE@python.inline@else:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('Could not get list of available frequencies: %s' %@@@",
      "@@@STEP_LOG_LINE@python.inline@                  available_freqs)@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
      "@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
      "@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
      "@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
      "@@@STEP_LOG_LINE@python.inline@  if f <= target:@@@",
      "@@@STEP_LOG_LINE@python.inline@    freq = f@@@",
      "@@@STEP_LOG_LINE@python.inline@    break@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
      "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
      "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
      "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '%s/scaling_min_freq' % root])@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '%s/scaling_max_freq' % (freq, root)])@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '%s/scaling_setspeed' % (freq, root)])@@@",
      "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
      "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '%s/scaling_cur_freq' % root]).strip()@@@",
      "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('(actual, expected) (%s, %d)'@@@",
      "@@@STEP_LOG_LINE@python.inline@                  % (actual_freq, freq))@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nfreq = sys.argv[2]\nidle_timer = \"10000\"\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n  raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'stop', 'thermald'])\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n    '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])\n\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n    '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()\nif actual_freq != freq:\n  raise Exception('Frequency (actual, expected) (%s, %s)'\n                  % (actual_freq, freq))\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n    '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])\n\nactual_timer = subprocess.check_output([ADB, 'shell', 'cat '\n    '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()\nif actual_timer != idle_timer:\n  raise Exception('idle_timer (actual, expected) (%s, %s)'\n                  % (actual_timer, idle_timer))\n\nfor s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:\n  subprocess.check_output([ADB, 'shell', 'echo \"1\" > '\n      '/sys/class/kgsl/kgsl-3d0/%s' % s])\n  actual_set = subprocess.check_output([ADB, 'shell', 'cat '\n      '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()\n  if actual_set != \"1\":\n    raise Exception('%s (actual, expected) (%s, 1)'\n                    % (s, actual_set))\n",
      "/usr/bin/adb.1.0.35",
      "450000000"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "Lock GPU to 450000000 (and other perf tweaks)",
    "timeout": 30,
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@import time@@@",
      "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@freq = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@idle_timer = \"10000\"@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
      "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
      "@@@STEP_LOG_LINE@python.inline@print log@@@",
      "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('adb root failed')@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'stop', 'thermald'])@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '/sys/class/kgsl/kgsl-3d0/gpuclk' % freq])@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '/sys/class/kgsl/kgsl-3d0/gpuclk']).strip()@@@",
      "@@@STEP_LOG_LINE@python.inline@if actual_freq != freq:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('Frequency (actual, expected) (%s, %s)'@@@",
      "@@@STEP_LOG_LINE@python.inline@                  % (actual_freq, freq))@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '/sys/class/kgsl/kgsl-3d0/idle_timer' % idle_timer])@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@actual_timer = subprocess.check_output([ADB, 'shell', 'cat '@@@",
      "@@@STEP_LOG_LINE@python.inline@    '/sys/class/kgsl/kgsl-3d0/idle_timer']).strip()@@@",
      "@@@STEP_LOG_LINE@python.inline@if actual_timer != idle_timer:@@@",
      "@@@STEP_LOG_LINE@python.inline@  raise Exception('idle_timer (actual, expected) (%s, %s)'@@@",
      "@@@STEP_LOG_LINE@python.inline@                  % (actual_timer, idle_timer))@@@",
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@for s in ['force_bus_on', 'force_rail_on', 'force_clk_on']:@@@",
      "@@@STEP_LOG_LINE@python.inline@  subprocess.check_output([ADB, 'shell', 'echo \"1\" > '@@@",
      "@@@STEP_LOG_LINE@python.inline@      '/sys/class/kgsl/kgsl-3d0/%s' % s])@@@",
      "@@@STEP_LOG_LINE@python.inline@  actual_set = subprocess.check_output([ADB, 'shell', 'cat '@@@",
      "@@@STEP_LOG_LINE@python.inline@      '/sys/class/kgsl/kgsl-3d0/%s' % s]).strip()@@@",
      "@@@STEP_LOG_LINE@python.inline@  if actual_set != \"1\":@@@",
      "@@@STEP_LOG_LINE@python.inline@    raise Exception('%s (actual, expected) (%s, 1)'@@@",
      "@@@STEP_LOG_LINE@python.inline@                    % (s, actual_set))@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "push",
      "[START_DIR]/build/nanobench",
      "/data/local/tmp/"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push nanobench"
  },
  {
    "cmd": [
      "python",
      "-u",
      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      "--json-output",
      "/path/to/tmp/json",
      "copy",
      "set -x; /data/local/tmp/nanobench -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --pre_log --images --gpuStatsDump true --scales 1.0 1.1 --nocpu --config gles glessrgb glesmsaa4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~keymobi_shop_mobileweb_ebay_com.skp ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp; echo $? >/data/local/tmp/rc",
      "[START_DIR]/tmp/nanobench.sh"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "write nanobench.sh"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "push",
      "[START_DIR]/tmp/nanobench.sh",
      "/data/local/tmp/"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "push nanobench.sh"
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "logcat",
      "-c"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "clear log"
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh      = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n  sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',\n                                        bin_dir + 'rc'])))\nexcept ValueError:\n  print \"Couldn't read the return code.  Probably killed for OOM.\"\n  sys.exit(1)\n",
      "/data/local/tmp/",
      "nanobench.sh"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "name": "nanobench",
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@sh      = sys.argv[2]@@@",
      "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@",
      "@@@STEP_LOG_LINE@python.inline@try:@@@",
      "@@@STEP_LOG_LINE@python.inline@  sys.exit(int(subprocess.check_output(['/usr/bin/adb.1.0.35', 'shell', 'cat',@@@",
      "@@@STEP_LOG_LINE@python.inline@                                        bin_dir + 'rc'])))@@@",
      "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
      "@@@STEP_LOG_LINE@python.inline@  print \"Couldn't read the return code.  Probably killed for OOM.\"@@@",
      "@@@STEP_LOG_LINE@python.inline@  sys.exit(1)@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "python",
      "-u",
      "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n  tokens = line.split()\n  if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n    addr, path = tokens[-2:]\n    local = os.path.join(out, os.path.basename(path))\n    if os.path.exists(local):\n      sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n      line = line.replace(addr, addr + ' ' + sym.strip())\n  print line\n",
      "[START_DIR]/build"
    ],
    "env": {
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "dump log",
    "timeout": 300,
    "~followup_annotations": [
      "@@@STEP_LOG_LINE@python.inline@@@@",
      "@@@STEP_LOG_LINE@python.inline@import os@@@",
      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
      "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@",
      "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
      "@@@STEP_LOG_LINE@python.inline@  tokens = line.split()@@@",
      "@@@STEP_LOG_LINE@python.inline@  if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
      "@@@STEP_LOG_LINE@python.inline@    addr, path = tokens[-2:]@@@",
      "@@@STEP_LOG_LINE@python.inline@    local = os.path.join(out, os.path.basename(path))@@@",
      "@@@STEP_LOG_LINE@python.inline@    if os.path.exists(local):@@@",
      "@@@STEP_LOG_LINE@python.inline@      sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
      "@@@STEP_LOG_LINE@python.inline@      line = line.replace(addr, addr + ' ' + sym.strip())@@@",
      "@@@STEP_LOG_LINE@python.inline@  print line@@@",
      "@@@STEP_LOG_END@python.inline@@@"
    ]
  },
  {
    "cmd": [
      "/usr/bin/adb.1.0.35",
      "kill-server"
    ],
    "cwd": "[START_DIR]/skia",
    "env": {
      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
      "CHROME_HEADLESS": "1",
      "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]"
    },
    "infra_step": true,
    "name": "kill adb server"
  },
  {
    "jsonResult": null,
    "name": "$result"
  }
]