diff options
author | Kevin Lubick <kjlubick@google.com> | 2017-08-31 10:39:05 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-31 14:40:51 +0000 |
commit | 2dafbd796d3dadfbec313577af525ce699ae1479 (patch) | |
tree | 64c89f948a9a7163a839b030389888370b977ef0 /infra | |
parent | a25fbef56a4e70192b0b322b6d87b78839fab0e5 (diff) |
Add Correctness tests for Chromecast
Bug: skia:
NOTRY=true
Change-Id: Ib604bad8eda6ba4382b850f7c5f318fb0f114401
Reviewed-on: https://skia-review.googlesource.com/20051
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra')
9 files changed, 1434 insertions, 34 deletions
diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 934bd78bd7..62a80e749a 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -184,8 +184,8 @@ "Perf-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Debug-ASAN", "Perf-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Release", "Perf-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Release-ASAN", - "Perf-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_SK_CPU_LIMIT_SSE41", "Perf-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41", + "Perf-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_SK_CPU_LIMIT_SSE41", "Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug", "Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE", "Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-Vulkan", @@ -266,8 +266,8 @@ "Test-Android-Clang-MotoG4-GPU-Adreno405-arm-Debug-Android", "Test-Android-Clang-MotoG4-GPU-Adreno405-arm-Release-Android", "Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-Android", - "Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-Android_Vulkan", "Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-Android_CCPR", + "Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-Android_Vulkan", "Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Release-Android", "Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Release-Android_Vulkan", "Test-Android-Clang-Nexus10-CPU-Exynos5250-arm-Debug-Android", @@ -305,6 +305,10 @@ "Test-ChromeOS-Clang-Chromebook_CB5_311-GPU-TegraK1-arm-Release", "Test-ChromeOS-Clang-Chromebook_CB5_312T-GPU-PowerVRGX6250-arm-Debug", "Test-ChromeOS-Clang-Chromebook_CB5_312T-GPU-PowerVRGX6250-arm-Release", + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug", + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release", + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug", + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release", "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug", "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN", "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN", @@ -358,9 +362,9 @@ "Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Release-ASAN", "Test-Ubuntu17-Clang-Golo-GPU-QuadroP400-x86_64-Release-TSAN", "Test-Ubuntu17-GCC-Golo-GPU-GT610-x86_64-Release-PreAbandonGpuContext", - "Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_SK_CPU_LIMIT_SSE41", "Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_AbandonGpuContext_SK_CPU_LIMIT_SSE41", "Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_PreAbandonGpuContext_SK_CPU_LIMIT_SSE41", + "Test-Ubuntu17-GCC-Golo-GPU-QuadroP400-x86_64-Release-Valgrind_SK_CPU_LIMIT_SSE41", "Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug", "Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-ANGLE", "Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-Vulkan", diff --git a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release.json b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release.json index fb0dc13b73..24eef46e3c 100644 --- a/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release.json +++ b/infra/bots/recipe_modules/flavor/examples/full.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release.json @@ -36,7 +36,8 @@ "ninja", "-C", "[START_DIR]/out/Release", - "nanobench" + "nanobench", + "dm" ], "cwd": "[START_DIR]/skia", "env": { @@ -187,9 +188,46 @@ }, { "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/bin" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/bin" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "/cache/skia/nanobench" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete old nanobench" + }, + { + "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skia/resources", "/cache/skia/resources" ], @@ -215,7 +253,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -327,7 +365,7 @@ "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skp", "/cache/skia/skps" ], @@ -353,7 +391,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -482,7 +520,7 @@ "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skimage", "/cache/skia/images" ], @@ -508,7 +546,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -637,7 +675,7 @@ "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/svg", "/cache/skia/svgs" ], @@ -663,7 +701,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -693,7 +731,7 @@ "adb", "push", "[START_DIR]/out/Release/dm", - "/cache/skia/" + "/cache/skia/bin" ], "cwd": "[START_DIR]/skia", "env": { @@ -713,7 +751,7 @@ "-t", "-t", "root@192.168.1.2", - "/cache/skia/dm", + "/cache/skia/bin/dm", "--some-flag" ], "env": { @@ -760,6 +798,55 @@ }, { "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "-r", + "/cache/skia/bin" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete executables" + }, + { + "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect" + }, + { + "cmd": [ + "adb", + "connect", + "192.168.1.2:5555" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "adb connect 192.168.1.2:5555 (2)" + }, + { + "cmd": [ "python", "-u", "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', '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", @@ -794,6 +881,20 @@ }, { "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect (2)" + }, + { + "cmd": [ "adb", "kill-server" ], diff --git a/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py b/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py index ec48a7dfa9..7f2c167324 100644 --- a/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py +++ b/infra/bots/recipe_modules/flavor/gn_chromecast_flavor.py @@ -15,6 +15,8 @@ class GNChromecastFlavorUtils(gn_android_flavor.GNAndroidFlavorUtils): super(GNChromecastFlavorUtils, self).__init__(m) self._ever_ran_adb = False self._user_ip = '' + self.m.vars.android_bin_dir = self.m.path.join(self.m.vars.android_bin_dir, + 'bin') @property def user_ip_host(self): @@ -90,8 +92,16 @@ class GNChromecastFlavorUtils(gn_android_flavor.GNAndroidFlavorUtils): self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn')) self._run('gn gen', gn, 'gen', self.out_dir, '--args=' + gn_args) - # We only build perf for the chromecasts. - self._run('ninja', ninja, '-C', self.out_dir, 'nanobench') + self._run('ninja', ninja, '-C', self.out_dir, 'nanobench', 'dm') + + def install(self): + super(GNChromecastFlavorUtils, self).install() + self._adb('mkdir ' + self.m.vars.android_bin_dir, + 'shell', 'mkdir', '-p', self.m.vars.android_bin_dir) + # TODO(kjlubick): Remove this after we are backfilled up and don't need + # to manually delete this + self._ssh('Delete old nanobench', 'rm', '/cache/skia/nanobench', + abort_on_failure=False) def _adb(self, title, *cmd, **kwargs): if not self._ever_ran_adb: @@ -131,13 +141,45 @@ class GNChromecastFlavorUtils(gn_android_flavor.GNAndroidFlavorUtils): for f in fs: print os.path.join(p,f) hp = os.path.realpath(os.path.join(host, p, f)) - if os.stat(hp).st_size > (3 * 1024 * 1024): + if os.stat(hp).st_size > (1.5 * 1024 * 1024): print "Skipping because it is too big" else: subprocess.check_call(['adb', 'push', hp, os.path.join(device, p, f)]) """, args=[host, device], infra_step=True) + def cleanup_steps(self): + if self._ever_ran_adb: + # To clean up disk space for next time + self._ssh('Delete executables', 'rm', '-r', self.m.vars.android_bin_dir, + abort_on_failure=False) + # Reconnect if was disconnected + self._adb('disconnect') + self._connect_to_remote() + self.m.run(self.m.python.inline, 'dump log', program=""" + import os + import subprocess + import sys + out = sys.argv[1] + log = subprocess.check_output(['adb', 'logcat', '-d']) + for line in log.split('\\n'): + tokens = line.split() + if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc': + addr, path = tokens[-2:] + local = os.path.join(out, os.path.basename(path)) + if os.path.exists(local): + sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr]) + line = line.replace(addr, addr + ' ' + sym.strip()) + print line + """, + args=[self.m.vars.skia_out.join(self.m.vars.configuration)], + infra_step=True, + abort_on_failure=False) + + self._adb('disconnect') + self._adb('kill adb server', 'kill-server') + + def _ssh(self, title, *cmd, **kwargs): ssh_cmd = ['ssh', '-oConnectTimeout=15', '-oBatchMode=yes', '-t', '-t', 'root@%s' % self.user_ip] + list(cmd) @@ -147,9 +189,10 @@ class GNChromecastFlavorUtils(gn_android_flavor.GNAndroidFlavorUtils): def step(self, name, cmd, **kwargs): app = self.m.vars.skia_out.join(self.m.vars.configuration, cmd[0]) + self._adb('push %s' % cmd[0], 'push', app, self.m.vars.android_bin_dir) - cmd[0] = '%s%s' % (self.m.vars.android_bin_dir, cmd[0]) + cmd[0] = '%s/%s' % (self.m.vars.android_bin_dir, cmd[0]) self._ssh(str(name), *cmd) diff --git a/infra/bots/recipes/compile.expected/Build-Ubuntu-GCC-arm-Release-Chromecast.json b/infra/bots/recipes/compile.expected/Build-Ubuntu-GCC-arm-Release-Chromecast.json index be2fbb2f3b..64376847b1 100644 --- a/infra/bots/recipes/compile.expected/Build-Ubuntu-GCC-arm-Release-Chromecast.json +++ b/infra/bots/recipes/compile.expected/Build-Ubuntu-GCC-arm-Release-Chromecast.json @@ -119,7 +119,8 @@ "ninja", "-C", "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-arm-Release-Chromecast/Release", - "nanobench" + "nanobench", + "dm" ], "cwd": "[CUSTOM_/_B_WORK]/skia", "env": { diff --git a/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug.json b/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug.json index 7556c66ee3..5f9562fdda 100644 --- a/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug.json +++ b/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug.json @@ -58,9 +58,46 @@ }, { "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/bin" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/bin" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "/cache/skia/nanobench" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete old nanobench" + }, + { + "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skia/resources", "/cache/skia/resources" ], @@ -86,7 +123,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -198,7 +235,7 @@ "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skp", "/cache/skia/skps" ], @@ -224,7 +261,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -282,7 +319,7 @@ "adb", "push", "[START_DIR]/out/Debug/nanobench", - "/cache/skia/" + "/cache/skia/bin" ], "cwd": "[START_DIR]/skia", "env": { @@ -302,7 +339,7 @@ "-t", "-t", "root@192.168.1.2", - "/cache/skia/nanobench", + "/cache/skia/bin/nanobench", "--nogpu", "--config", "8888", @@ -330,6 +367,55 @@ }, { "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "-r", + "/cache/skia/bin" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete executables" + }, + { + "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect" + }, + { + "cmd": [ + "adb", + "connect", + "192.168.1.2:5555" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "adb connect 192.168.1.2:5555 (2)" + }, + { + "cmd": [ "python", "-u", "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', '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", @@ -364,6 +450,20 @@ }, { "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect (2)" + }, + { + "cmd": [ "adb", "kill-server" ], diff --git a/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json b/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json index fe43eb3bb3..173c236ee1 100644 --- a/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json +++ b/infra/bots/recipes/perf.expected/Perf-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json @@ -58,9 +58,46 @@ }, { "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/bin" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/bin" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "/cache/skia/nanobench" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete old nanobench" + }, + { + "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skia/resources", "/cache/skia/resources" ], @@ -86,7 +123,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -198,7 +235,7 @@ "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (3 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "\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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", "[START_DIR]/skp", "/cache/skia/skps" ], @@ -224,7 +261,7 @@ "@@@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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (3 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", "@@@STEP_LOG_LINE@python.inline@ else:@@@", "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", @@ -318,7 +355,7 @@ "adb", "push", "[START_DIR]/out/Release/nanobench", - "/cache/skia/" + "/cache/skia/bin" ], "cwd": "[START_DIR]/skia", "env": { @@ -338,7 +375,7 @@ "-t", "-t", "root@192.168.1.2", - "/cache/skia/nanobench", + "/cache/skia/bin/nanobench", "--nocpu", "--config", "gles", @@ -420,6 +457,55 @@ }, { "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "-r", + "/cache/skia/bin" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete executables" + }, + { + "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect" + }, + { + "cmd": [ + "adb", + "connect", + "192.168.1.2:5555" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "adb connect 192.168.1.2:5555 (2)" + }, + { + "cmd": [ "python", "-u", "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', '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", @@ -454,6 +540,20 @@ }, { "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect (2)" + }, + { + "cmd": [ "adb", "kill-server" ], diff --git a/infra/bots/recipes/test.expected/Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json b/infra/bots/recipes/test.expected/Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json new file mode 100644 index 0000000000..558fcedc2d --- /dev/null +++ b/infra/bots/recipes/test.expected/Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release.json @@ -0,0 +1,759 @@ +[ + { + "cmd": [ + "python", + "-u", + "\nimport os\nCHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')\nwith open(CHROMECAST_IP_FILE, 'r') as f:\n print f.read()\n" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read chromecast ip", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@CHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')@@@", + "@@@STEP_LOG_LINE@python.inline@with open(CHROMECAST_IP_FILE, 'r') as f:@@@", + "@@@STEP_LOG_LINE@python.inline@ print f.read()@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "adb", + "connect", + "192.168.1.2:5555" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "adb connect 192.168.1.2:5555" + }, + { + "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/resources" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/resources" + }, + { + "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/bin" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/bin" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "/cache/skia/nanobench" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete old nanobench" + }, + { + "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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "[START_DIR]/skia/resources", + "/cache/skia/resources" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "push [START_DIR]/skia/resources/* /cache/skia/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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", + "@@@STEP_LOG_LINE@python.inline@ else:@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", + "@@@STEP_LOG_LINE@python.inline@ hp, 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 downloaded 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": [ + "adb", + "shell", + "cat", + "/cache/skia/SKP_VERSION" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /cache/skia/SKP_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "adb", + "shell", + "rm", + "-f", + "/cache/skia/SKP_VERSION" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /cache/skia/SKP_VERSION" + }, + { + "cmd": [ + "adb", + "shell", + "rm", + "-r", + "/cache/skia/skps" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /cache/skia/skps" + }, + { + "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/skps" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/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 hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", + "[START_DIR]/skp", + "/cache/skia/skps" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "push [START_DIR]/skp/* /cache/skia/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@ hp = os.path.realpath(os.path.join(host, p, f))@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"Skipping because it is too big\"@@@", + "@@@STEP_LOG_LINE@python.inline@ else:@@@", + "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@", + "@@@STEP_LOG_LINE@python.inline@ hp, os.path.join(device, p, f)])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "adb", + "push", + "[START_DIR]/tmp/SKP_VERSION", + "/cache/skia/SKP_VERSION" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "push [START_DIR]/tmp/SKP_VERSION /cache/skia/SKP_VERSION" + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "rmtree", + "[CUSTOM_[SWARM_OUT_DIR]]/dm" + ], + "infra_step": true, + "name": "rmtree dm" + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "ensure-directory", + "--mode", + "0777", + "[CUSTOM_[SWARM_OUT_DIR]]/dm" + ], + "infra_step": true, + "name": "makedirs dm" + }, + { + "cmd": [ + "adb", + "shell", + "rm", + "-r", + "/cache/skia/dm_out" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /cache/skia/dm_out" + }, + { + "cmd": [ + "adb", + "shell", + "mkdir", + "-p", + "/cache/skia/dm_out" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /cache/skia/dm_out" + }, + { + "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", + "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n", + "[START_DIR]/tmp/uninteresting_hashes.txt" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "get uninteresting hashes", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", + "@@@STEP_LOG_LINE@python.inline@import math@@@", + "@@@STEP_LOG_LINE@python.inline@import socket@@@", + "@@@STEP_LOG_LINE@python.inline@import sys@@@", + "@@@STEP_LOG_LINE@python.inline@import time@@@", + "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@", + "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", + "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", + "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", + "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", + "@@@STEP_LOG_LINE@python.inline@ try:@@@", + "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@", + "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", + "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@", + "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[1], 'w') as f:@@@", + "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@", + "@@@STEP_LOG_LINE@python.inline@ break@@@", + "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@", + "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", + "@@@STEP_LOG_LINE@python.inline@ print e@@@", + "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@", + "@@@STEP_LOG_LINE@python.inline@ raise@@@", + "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", + "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@", + "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "adb", + "push", + "[START_DIR]/tmp/uninteresting_hashes.txt", + "/cache/skia/uninteresting_hashes.txt" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "push [START_DIR]/tmp/uninteresting_hashes.txt /cache/skia/uninteresting_hashes.txt" + }, + { + "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": [ + "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": [ + "adb", + "push", + "[START_DIR]/out/Release/dm", + "/cache/skia/bin" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "push dm" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "/cache/skia/bin/dm", + "--undefok", + "--resourcePath", + "/cache/skia/resources", + "--skps", + "/cache/skia/skps", + "--images", + "/cache/skia/resources/color_wheel.jpg", + "--dont_write", + "pdf", + "--randomProcessorTest", + "--threads", + "0", + "--nocpu", + "--config", + "gles", + "8888", + "--src", + "tests", + "gm", + "image", + "colorImage", + "svg", + "--blacklist", + "_", + "svg", + "_", + "svgparse_", + "_", + "test", + "_", + "GrShape", + "_", + "image", + "_", + "interlaced1.png", + "_", + "image", + "_", + "interlaced2.png", + "_", + "image", + "_", + "interlaced3.png", + "_", + "image", + "_", + ".arw", + "_", + "image", + "_", + ".cr2", + "_", + "image", + "_", + ".dng", + "_", + "image", + "_", + ".nef", + "_", + "image", + "_", + ".nrw", + "_", + "image", + "_", + ".orf", + "_", + "image", + "_", + ".raf", + "_", + "image", + "_", + ".rw2", + "_", + "image", + "_", + ".pef", + "_", + "image", + "_", + ".srw", + "_", + "image", + "_", + ".ARW", + "_", + "image", + "_", + ".CR2", + "_", + "image", + "_", + ".DNG", + "_", + "image", + "_", + ".NEF", + "_", + "image", + "_", + ".NRW", + "_", + "image", + "_", + ".ORF", + "_", + "image", + "_", + ".RAF", + "_", + "image", + "_", + ".RW2", + "_", + "image", + "_", + ".PEF", + "_", + "image", + "_", + ".SRW", + "--match", + "~matrixconvolution", + "~blur_image_filter", + "~blur_0.01", + "~GM_animated-image-blurs" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "dm" + }, + { + "cmd": [ + "adb", + "pull", + "/cache/skia/dm_out", + "[CUSTOM_[SWARM_OUT_DIR]]/dm" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "pull /cache/skia/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "root@192.168.1.2", + "rm", + "-r", + "/cache/skia/bin" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "name": "Delete executables" + }, + { + "cmd": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect" + }, + { + "cmd": [ + "adb", + "connect", + "192.168.1.2:5555" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "adb connect 192.168.1.2:5555 (2)" + }, + { + "cmd": [ + "python", + "-u", + "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', '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]/out/Release" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "dump log", + "~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(['adb', '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": [ + "adb" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "disconnect (2)" + }, + { + "cmd": [ + "adb", + "kill-server" + ], + "cwd": "[START_DIR]/skia", + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "kill adb server" + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipes/test.py b/infra/bots/recipes/test.py index ad0334c288..012b4c2184 100644 --- a/infra/bots/recipes/test.py +++ b/infra/bots/recipes/test.py @@ -59,6 +59,9 @@ def dm_flags(api, bot): if '-x86-' in bot and not 'NexusPlayer' in bot: args.extend(['--threads', '4']) + if 'Chromecast' in bot: + args.extend(['--threads', '0']) + # Avoid issues with dynamically exceeding resource cache limits. if 'Test' in bot and 'DISCARDABLE' in bot: args.extend(['--threads', '0']) @@ -213,6 +216,9 @@ def dm_flags(api, bot): # Just run GLES for now - maybe add gles_msaa4 in the future configs = ['gles'] + if 'Chromecast' in bot: + configs = ['gles', '8888'] + # Test coverage counting path renderer. if 'CCPR' in bot: configs = [c for c in configs if c == 'gl' or c == 'gles'] @@ -312,7 +318,7 @@ def dm_flags(api, bot): blacklist('_ image gen_platf rle8-height-negative.bmp') blacklist('_ image gen_platf rle4-height-negative.bmp') - if 'Android' in bot or 'iOS' in bot: + if 'Android' in bot or 'iOS' in bot or 'Chromecast' in bot: # This test crashes the N9 (perhaps because of large malloc/frees). It also # is fairly slow and not platform-specific. So we just disable it on all of # Android and iOS. skia:5438 @@ -370,7 +376,7 @@ def dm_flags(api, bot): for test in ['bleed_alpha_image', 'bleed_alpha_image_shader']: blacklist(['serialize-8888', 'gm', '_', test]) # It looks like we skip these only for out-of-memory concerns. - if 'Win' in bot or 'Android' in bot: + if 'Win' in bot or 'Android' in bot or 'Chromecast' in bot: for test in ['verylargebitmap', 'verylarge_picture_image']: blacklist(['serialize-8888', 'gm', '_', test]) if 'Mac' in bot and 'CPU' in bot and 'Release' in bot: @@ -473,6 +479,12 @@ def dm_flags(api, bot): if 'AndroidOne' in bot: # skia:4711 match.append('~WritePixels') + if 'Chromecast' in bot: # skia:6581 + match.append('~matrixconvolution') + match.append('~blur_image_filter') + match.append('~blur_0.01') + match.append('~GM_animated-image-blurs') + if 'NexusPlayer' in bot: match.append('~ResourceCache') @@ -763,6 +775,17 @@ def test_steps(api): if api.vars.upload_dm_results: args.extend(['--writePath', api.flavor.device_dirs.dm_dir]) + if 'Chromecast' in api.vars.builder_cfg.get('os', ''): + # Due to limited disk space, we only deal with skps and one image. + args = [ + 'dm', + '--undefok', # This helps branches that may not know new flags. + '--resourcePath', api.flavor.device_dirs.resource_dir, + '--skps', api.flavor.device_dirs.skp_dir, + '--images', api.flavor.device_path_join( + api.flavor.device_dirs.resource_dir, 'color_wheel.jpg'), + ] + args.extend(dm_flags(api, api.vars.builder_name)) env = {} @@ -815,7 +838,10 @@ def RunSteps(api): env['IOS_MOUNT_POINT'] = api.vars.slave_dir.join('mnt_iosdevice') with api.context(env=env): try: - api.flavor.install_everything() + if 'Chromecast' in api.vars.builder_name: + api.flavor.install(resources=True, skps=True) + else: + api.flavor.install_everything() test_steps(api) finally: api.flavor.cleanup_steps() @@ -840,6 +866,7 @@ TEST_BUILDERS = [ 'Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Debug-Android', 'Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug', 'Test-ChromeOS-Clang-Chromebook_CB5_312T-GPU-PowerVRGX6250-arm-Debug', + 'Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release', 'Test-Mac-Clang-MacMini7.1-CPU-AVX-x86_64-Release', 'Test-Mac-Clang-MacMini7.1-GPU-IntelIris5100-x86_64-Debug-CommandBuffer', 'Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN', @@ -901,6 +928,11 @@ def GenTests(api): if 'Win' in builder: test += api.platform('win', 64) + if 'Chromecast' in builder: + test += api.step_data( + 'read chromecast ip', + stdout=api.raw_io.output('192.168.1.2:5555')) + if 'ChromeOS' in builder: test += api.step_data( 'read chromeos ip', diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index bbab7ff8c5..3385b5dfaa 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -1845,6 +1845,30 @@ "Upload-Test-ChromeOS-Clang-Chromebook_CB5_312T-GPU-PowerVRGX6250-arm-Release" ] }, + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug": { + "priority": 0.8, + "tasks": [ + "Upload-Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug" + ] + }, + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release": { + "priority": 0.8, + "tasks": [ + "Upload-Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release" + ] + }, + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug": { + "priority": 0.8, + "tasks": [ + "Upload-Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug" + ] + }, + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release": { + "priority": 0.8, + "tasks": [ + "Upload-Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release" + ] + }, "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug": { "priority": 0.8, "tasks": [ @@ -13988,6 +14012,134 @@ "max_attempts": 1, "priority": 0.8 }, + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug": { + "dependencies": [ + "Build-Debian9-GCC-arm-Debug-Chromecast", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP" + ], + "dimensions": [ + "device_os:1.24_82923", + "device_type:chorizo", + "os:Android", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "test", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "io_timeout_ns": 2400000000000, + "isolate": "test_skia_bundled_unix.isolate", + "max_attempts": 1, + "priority": 0.8 + }, + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release": { + "dependencies": [ + "Build-Debian9-GCC-arm-Release-Chromecast", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP" + ], + "dimensions": [ + "device_os:1.24_82923", + "device_type:chorizo", + "os:Android", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "test", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "io_timeout_ns": 2400000000000, + "isolate": "test_skia_bundled_unix.isolate", + "max_attempts": 1, + "priority": 0.8 + }, + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug": { + "dependencies": [ + "Build-Debian9-GCC-arm-Debug-Chromecast", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP" + ], + "dimensions": [ + "device_os:1.24_82923", + "device_type:chorizo", + "os:Android", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "test", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "io_timeout_ns": 2400000000000, + "isolate": "test_skia_bundled_unix.isolate", + "max_attempts": 1, + "priority": 0.8 + }, + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release": { + "dependencies": [ + "Build-Debian9-GCC-arm-Release-Chromecast", + "Housekeeper-PerCommit-BundleRecipes", + "Housekeeper-PerCommit-IsolateSKP" + ], + "dimensions": [ + "device_os:1.24_82923", + "device_type:chorizo", + "os:Android", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "test", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "io_timeout_ns": 2400000000000, + "isolate": "test_skia_bundled_unix.isolate", + "max_attempts": 1, + "priority": 0.8 + }, "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug": { "cipd_packages": [ { @@ -23416,6 +23568,114 @@ "isolate": "upload_dm_results.isolate", "priority": 0.8 }, + "Upload-Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug": { + "dependencies": [ + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Debian-9.1", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_dm_results", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)", + "gs_bucket=skia-infra-gm" + ], + "isolate": "upload_dm_results.isolate", + "priority": 0.8 + }, + "Upload-Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release": { + "dependencies": [ + "Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Debian-9.1", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_dm_results", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)", + "gs_bucket=skia-infra-gm" + ], + "isolate": "upload_dm_results.isolate", + "priority": 0.8 + }, + "Upload-Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug": { + "dependencies": [ + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Debian-9.1", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_dm_results", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Debug", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)", + "gs_bucket=skia-infra-gm" + ], + "isolate": "upload_dm_results.isolate", + "priority": 0.8 + }, + "Upload-Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release": { + "dependencies": [ + "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Debian-9.1", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_dm_results", + "repository=<(REPO)", + "buildername=Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_repo=<(PATCH_REPO)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)", + "gs_bucket=skia-infra-gm" + ], + "isolate": "upload_dm_results.isolate", + "priority": 0.8 + }, "Upload-Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug": { "dependencies": [ "Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug" |