diff options
author | Kevin Lubick <kjlubick@google.com> | 2017-04-07 10:04:08 -0400 |
---|---|---|
committer | Kevin Lubick <kjlubick@google.com> | 2017-04-07 14:41:07 +0000 |
commit | cb6f3980a502c53a646082782df87e0cc28ff574 (patch) | |
tree | 995af8dae8d26298d096e2381c9a667d505bc114 /infra | |
parent | 3390cdfef8c0ad1f04810a4bb1e98a04e3d56a1a (diff) |
Add ChromeOS Test/Perf jobs and recipe changes
Minor cleanup of left over Tab3 tests.
Bug: skia:6442
Change-Id: I03bb4a034101a2773619abd2be7a300a70f6ac3d
Reviewed-on: https://skia-review.googlesource.com/11414
Reviewed-by: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra')
15 files changed, 2345 insertions, 836 deletions
diff --git a/infra/bots/gen_tasks.go b/infra/bots/gen_tasks.go index 0859b023ff..8773e0204a 100644 --- a/infra/bots/gen_tasks.go +++ b/infra/bots/gen_tasks.go @@ -102,8 +102,8 @@ func deriveCompileTaskName(jobName string, parts map[string]string) string { } else if task_os == "Chromecast" { task_os = "Ubuntu" ec = "Chromecast" - } else if strings.HasPrefix(task_os, "Chromebook") { - ec = task_os + } else if strings.Contains(task_os, "ChromeOS") { + ec = parts["model"] task_os = "Ubuntu" } else if task_os == "iOS" { ec = task_os @@ -142,6 +142,7 @@ func swarmDimensions(parts map[string]string) []string { d["os"] = map[string]string{ "Android": "Android", "Chromecast": "Android", + "ChromeOS": "ChromeOS", "Mac": "Mac-10.11", "Ubuntu": DEFAULT_OS_LINUX, "Ubuntu16": "Ubuntu-16.10", diff --git a/infra/bots/gpu_map.json b/infra/bots/gpu_map.json index 6ec53a3fb9..6028933c1a 100644 --- a/infra/bots/gpu_map.json +++ b/infra/bots/gpu_map.json @@ -14,5 +14,6 @@ "IntelHD4600": "8086:0412", "IntelIris540": "8086:1926", "IntelIris6100": "8086:162b", + "MaliT764": "MaliT764", "RadeonR9M470X": "1002:6646" } diff --git a/infra/bots/jobs.json b/infra/bots/jobs.json index 3ee1622557..f8b135ca8f 100644 --- a/infra/bots/jobs.json +++ b/infra/bots/jobs.json @@ -112,6 +112,8 @@ "Perf-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android", "Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-Android_Skpbench", "Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-Android_Vulkan_Skpbench", + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug", + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release", "Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug", "Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release", "Perf-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug", @@ -230,6 +232,8 @@ "Test-Android-Clang-PixelXL-GPU-Adreno530-arm64-Debug-Android_Vulkan", "Test-Android-Clang-PixelXL-GPU-Adreno530-arm64-Release-Android", "Test-Android-Clang-PixelXL-GPU-Adreno530-arm64-Release-Android_Vulkan", + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug", + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release", "Test-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug", "Test-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Release", "Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug", diff --git a/infra/bots/recipe_modules/flavor/api.py b/infra/bots/recipe_modules/flavor/api.py index 9d64a329f5..24fb71bd03 100644 --- a/infra/bots/recipe_modules/flavor/api.py +++ b/infra/bots/recipe_modules/flavor/api.py @@ -38,7 +38,7 @@ def is_chromecast(builder_cfg): def is_chromebook(builder_cfg): return ('Chromebook' in builder_cfg.get('extra_config', '') or - 'Chromebook' in builder_cfg.get('os', '')) + 'ChromeOS' in builder_cfg.get('os', '')) def is_flutter(builder_cfg): return 'Flutter' in builder_cfg.get('extra_config', '') diff --git a/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py b/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py index 70b138d239..95b60b6beb 100644 --- a/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py +++ b/infra/bots/recipe_modules/flavor/gn_chromebook_flavor.py @@ -4,7 +4,9 @@ from recipe_engine import recipe_api +import default_flavor import gn_flavor +import json import subprocess @@ -14,6 +16,56 @@ import subprocess """ class GNChromebookFlavorUtils(gn_flavor.GNFlavorUtils): + def __init__(self, m): + super(GNChromebookFlavorUtils, self).__init__(m) + self._user_ip = '' + + self.device_dirs = default_flavor.DeviceDirs( + dm_dir = self.m.vars.chromeos_homedir + 'dm_out', + perf_data_dir = self.m.vars.chromeos_homedir + 'perf', + resource_dir = self.m.vars.chromeos_homedir + 'resources', + images_dir = self.m.vars.chromeos_homedir + 'images', + skp_dir = self.m.vars.chromeos_homedir + 'skps', + svg_dir = self.m.vars.chromeos_homedir + 'svgs', + tmp_dir = self.m.vars.chromeos_homedir) + + self._bin_dir = self.m.vars.chromeos_homedir + 'bin' + + def _get_remote_ip(self): + ssh_info = self.m.run(self.m.python.inline, 'read chromeos ip', + program=""" + import os + SSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json') + with open(SSH_MACHINE_FILE, 'r') as f: + print f.read() + """, + stdout=self.m.raw_io.output(), + infra_step=True).stdout + + self._user_ip = json.loads(ssh_info).get(u'user_ip', 'ERROR') + + def _ssh(self, title, *cmd, **kwargs): + if not self._user_ip: + self._get_remote_ip() + + if 'infra_step' not in kwargs: + kwargs['infra_step'] = True + + ssh_cmd = ['ssh', '-oConnectTimeout=15', '-oBatchMode=yes', + '-t', '-t', self._user_ip] + list(cmd) + + return self._run(title, ssh_cmd, **kwargs) + + def install(self): + self._ssh('mkdir %s' % self.device_dirs.resource_dir, 'mkdir', '-p', + self.device_dirs.resource_dir) + + # Ensure the home dir is marked executable + self._ssh('remount %s as exec' % self.m.vars.chromeos_homedir, + 'sudo', 'mount', '-i', '-o', 'remount,exec', '/home/chronos') + + self.create_clean_device_dir(self._bin_dir) + def compile(self, unused_target): configuration = self.m.vars.builder_cfg.get('configuration') os = self.m.vars.builder_cfg.get('os') @@ -94,3 +146,65 @@ class GNChromebookFlavorUtils(gn_flavor.GNFlavorUtils): 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]) self._run('ninja', [ninja, '-C', self.out_dir, 'nanobench', 'dm']) + + def create_clean_device_dir(self, path): + # use -f to silently return if path doesn't exist + self._ssh('rm %s' % path, 'rm', '-rf', path) + self._ssh('mkdir %s' % path, 'mkdir', '-p', path) + + def read_file_on_device(self, path): + # To avoid failure if file doesn't exist. + self._ssh('touch %s' % path, 'touch', path) + return self._ssh('read %s' % path, + 'cat', path, stdout=self.m.raw_io.output()).stdout + + def remove_file_on_device(self, path): + # use -f to silently return if path doesn't exist + self._ssh('rm %s' % path, 'rm', '-f', path) + + def _prefix_device_path(self, device_path): + if not self._user_ip: + self._get_remote_ip() #pragma:nocover + return '%s:%s' % (self._user_ip, device_path) + + def copy_file_to_device(self, host_path, device_path): + device_path = self._prefix_device_path(device_path) + # Recipe + self.m.python.inline(str('scp %s %s' % (host_path, device_path)), + """ + import subprocess + import sys + host = sys.argv[1] + device = sys.argv[2] + print subprocess.check_output(['scp', host, device]) + """, args=[host_path, device_path], infra_step=True) + + def _copy_dir(self, src, dest): + # We can't use rsync to communicate with the chromebooks because the + # chromebooks don't have rsync installed on them. + self.m.python.inline(str('scp -r %s %s' % (src, dest)), + """ + import subprocess + import sys + src = sys.argv[1] + '/*' + dest = sys.argv[2] + print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True) + """, args=[src, dest], infra_step=True) + + def copy_directory_contents_to_device(self, host_path, device_path): + self._copy_dir(host_path, self._prefix_device_path(device_path)) + + def copy_directory_contents_to_host(self, device_path, host_path): + self._copy_dir(self._prefix_device_path(device_path), host_path) + + def step(self, name, cmd, **kwargs): + # Push and run either dm or nanobench + + name = cmd[0] + app = self.m.vars.skia_out.join(self.m.vars.configuration, cmd[0]) + + cmd[0] = '%s/%s' % (self._bin_dir, cmd[0]) + self.copy_file_to_device(app, cmd[0]) + + self._ssh('chmod %s' % name, 'chmod', '+x', cmd[0]) + self._ssh(str(name), *cmd) diff --git a/infra/bots/recipe_modules/flavor/gn_flavor.py b/infra/bots/recipe_modules/flavor/gn_flavor.py index bf23375642..9eb4ae2fa4 100644 --- a/infra/bots/recipe_modules/flavor/gn_flavor.py +++ b/infra/bots/recipe_modules/flavor/gn_flavor.py @@ -6,12 +6,12 @@ import default_flavor """GN flavor utils, used for building Skia with GN.""" class GNFlavorUtils(default_flavor.DefaultFlavorUtils): - def _run(self, title, cmd, infra_step=False): - self.m.run(self.m.step, title, cmd=cmd, - infra_step=infra_step) + def _run(self, title, cmd, infra_step=False, **kwargs): + return self.m.run(self.m.step, title, cmd=cmd, + infra_step=infra_step, **kwargs) def _py(self, title, script, infra_step=True, args=()): - self.m.run(self.m.python, title, script=script, args=args, + return self.m.run(self.m.python, title, script=script, args=args, infra_step=infra_step) def build_command_buffer(self): diff --git a/infra/bots/recipe_modules/perf/api.py b/infra/bots/recipe_modules/perf/api.py index 80279d51d3..05732b0737 100644 --- a/infra/bots/recipe_modules/perf/api.py +++ b/infra/bots/recipe_modules/perf/api.py @@ -48,6 +48,8 @@ def nanobench_flags(bot): sample_count = '' elif 'Intel' in bot: sample_count = '' + elif 'ChromeOS' in bot: + gl_prefix = 'gles' configs.append(gl_prefix) if sample_count is not '': @@ -78,6 +80,10 @@ def nanobench_flags(bot): if sample_count is not '': configs.append('angle_d3d11_es2_msaa' + sample_count) + if 'ChromeOS' in bot: + # Just run GLES for now - maybe add gles_msaa4 in the future + configs = ['gles'] + args.append('--config') args.extend(configs) diff --git a/infra/bots/recipe_modules/perf/example.expected/Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release.json b/infra/bots/recipe_modules/perf/example.expected/Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release.json new file mode 100644 index 0000000000..8c38febd0d --- /dev/null +++ b/infra/bots/recipe_modules/perf/example.expected/Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release.json @@ -0,0 +1,845 @@ +[ + { + "cmd": [ + "python", + "-u", + "\nimport os\nSSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json')\nwith open(SSH_MACHINE_FILE, 'r') as f:\n print f.read()\n" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read chromeos ip", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@SSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json')@@@", + "@@@STEP_LOG_LINE@python.inline@with open(SSH_MACHINE_FILE, 'r') as f:@@@", + "@@@STEP_LOG_LINE@python.inline@ print f.read()@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/resources" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/resources" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "sudo", + "mount", + "-i", + "-o", + "remount,exec", + "/home/chronos" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "remount /home/chronos/user/ as exec" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/bin" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/bin" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/bin" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/bin" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/skia/resources", + "foo@127.0.0.1:/home/chronos/user/resources" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/skia/resources foo@127.0.0.1:/home/chronos/user/resources", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "[START_DIR]/skia/infra/bots/assets/skp/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get downloaded SKP VERSION" + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "42", + "[START_DIR]/tmp/SKP_VERSION" + ], + "infra_step": true, + "name": "write SKP_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "touch", + "/home/chronos/user/SKP_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "touch /home/chronos/user/SKP_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "cat", + "/home/chronos/user/SKP_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /home/chronos/user/SKP_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-f", + "/home/chronos/user/SKP_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/SKP_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/skps" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/skps" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/skps" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/skps" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/skp", + "foo@127.0.0.1:/home/chronos/user/skps" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/skp foo@127.0.0.1:/home/chronos/user/skps", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/SKP_VERSION", + "foo@127.0.0.1:/home/chronos/user/SKP_VERSION" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/SKP_VERSION foo@127.0.0.1:/home/chronos/user/SKP_VERSION", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "[START_DIR]/skia/infra/bots/assets/skimage/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get downloaded skimage VERSION" + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "42", + "[START_DIR]/tmp/SK_IMAGE_VERSION" + ], + "infra_step": true, + "name": "write SK_IMAGE_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "touch", + "/home/chronos/user/SK_IMAGE_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "touch /home/chronos/user/SK_IMAGE_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "cat", + "/home/chronos/user/SK_IMAGE_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /home/chronos/user/SK_IMAGE_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-f", + "/home/chronos/user/SK_IMAGE_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/SK_IMAGE_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/images" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/images" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/images" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/images" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/skimage", + "foo@127.0.0.1:/home/chronos/user/images" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/skimage foo@127.0.0.1:/home/chronos/user/images", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/SK_IMAGE_VERSION", + "foo@127.0.0.1:/home/chronos/user/SK_IMAGE_VERSION" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/SK_IMAGE_VERSION foo@127.0.0.1:/home/chronos/user/SK_IMAGE_VERSION", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "[START_DIR]/skia/infra/bots/assets/svg/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get downloaded SVG VERSION" + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "42", + "[START_DIR]/tmp/SVG_VERSION" + ], + "infra_step": true, + "name": "write SVG_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "touch", + "/home/chronos/user/SVG_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "touch /home/chronos/user/SVG_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "cat", + "/home/chronos/user/SVG_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /home/chronos/user/SVG_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-f", + "/home/chronos/user/SVG_VERSION" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/SVG_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/svgs" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/svgs" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/svgs" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/svgs" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/svg", + "foo@127.0.0.1:/home/chronos/user/svgs" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/svg foo@127.0.0.1:/home/chronos/user/svgs", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/SVG_VERSION", + "foo@127.0.0.1:/home/chronos/user/SVG_VERSION" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/SVG_VERSION foo@127.0.0.1:/home/chronos/user/SVG_VERSION", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/perf" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/perf" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/perf" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/perf" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/out/Release/nanobench", + "foo@127.0.0.1:/home/chronos/user/bin/nanobench" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "scp [START_DIR]/out/Release/nanobench foo@127.0.0.1:/home/chronos/user/bin/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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "chmod", + "+x", + "/home/chronos/user/bin/nanobench" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "chmod nanobench" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "/home/chronos/user/bin/nanobench", + "--undefok", + "-i", + "/home/chronos/user/resources", + "--skps", + "/home/chronos/user/skps", + "--images", + "/home/chronos/user/images/nanobench", + "--svgs", + "/home/chronos/user/svgs", + "--nocpu", + "--pre_log", + "--images", + "--gpuStatsDump", + "true", + "--scales", + "1.0", + "1.1", + "--config", + "gles", + "--match", + "~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", + "--outResultsFile", + "/home/chronos/user/perf/nanobench_abc123_1337000001.json", + "--properties", + "gitHash", + "abc123", + "build_number", + "5", + "--key", + "arch", + "arm", + "compiler", + "Clang", + "cpu_or_gpu", + "GPU", + "cpu_or_gpu_value", + "MaliT764", + "model", + "Chromebook_C100p", + "os", + "ChromeOS" + ], + "env": { + "BUILDTYPE": "Release", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "nanobench" + }, + { + "cmd": [ + "python", + "-u", + "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", + "[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release/data", + "511" + ], + "name": "makedirs perf_dir", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", + "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", + "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "foo@127.0.0.1:/home/chronos/user/perf", + "[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release/data" + ], + "infra_step": true, + "name": "scp -r foo@127.0.0.1:/home/chronos/user/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release/data", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/perf/example.py b/infra/bots/recipe_modules/perf/example.py index 900d58dbda..169a25cb14 100644 --- a/infra/bots/recipe_modules/perf/example.py +++ b/infra/bots/recipe_modules/perf/example.py @@ -28,6 +28,7 @@ TEST_BUILDERS = { ('Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_' 'Android_Vulkan'), 'Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android', + 'Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release', 'Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug', 'Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release', 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', @@ -88,6 +89,10 @@ def GenTests(api): 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', + stdout=api.raw_io.output('{"user_ip":"foo@127.0.0.1"}')) + yield test builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' diff --git a/infra/bots/recipe_modules/sktest/api.py b/infra/bots/recipe_modules/sktest/api.py index 74a6e5e19a..69e30cd59c 100644 --- a/infra/bots/recipe_modules/sktest/api.py +++ b/infra/bots/recipe_modules/sktest/api.py @@ -40,6 +40,8 @@ def dm_flags(bot): gl_prefix = 'gles' elif 'Intel' in bot: sample_count = '' + elif 'ChromeOS' in bot: + gl_prefix = 'gles' configs.extend([gl_prefix, gl_prefix + 'dft', gl_prefix + 'srgb']) if sample_count is not '': @@ -119,6 +121,10 @@ def dm_flags(bot): if 'Vulkan' in bot: configs = ['vk'] + if 'ChromeOS' in bot: + # Just run GLES for now - maybe add gles_msaa4 in the future + configs = ['gles'] + args.append('--config') args.extend(configs) @@ -485,10 +491,6 @@ def dm_flags(bot): if 'IntelBayTrail' in bot and 'Ubuntu' in bot: match.append('~ImageStorageLoad') # skia:6358 - if 'Vivante' in bot: - # This causes the bot to spin for >3.5 hours. - blacklist(['_', 'gm', '_', 'scaled_tilemodes_npot']) - if blacklisted: args.append('--blacklist') args.extend(blacklisted) diff --git a/infra/bots/recipe_modules/sktest/example.expected/Test-Android-Clang-GalaxyTab3-GPU-Vivante-arm-Debug-Android.json b/infra/bots/recipe_modules/sktest/example.expected/Test-Android-Clang-GalaxyTab3-GPU-Vivante-arm-Debug-Android.json deleted file mode 100644 index c585fdb1ac..0000000000 --- a/infra/bots/recipe_modules/sktest/example.expected/Test-Android-Clang-GalaxyTab3-GPU-Vivante-arm-Debug-Android.json +++ /dev/null @@ -1,824 +0,0 @@ -[ - { - "cmd": [ - "adb", - "shell", - "mkdir", - "-p", - "/sdcard/revenge_of_the_skiabot/resources" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "[START_DIR]/skia/infra/bots/assets/skp/VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get downloaded SKP VERSION" - }, - { - "cmd": [ - "python", - "-u", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "42", - "[START_DIR]/tmp/SKP_VERSION" - ], - "infra_step": true, - "name": "write SKP_VERSION" - }, - { - "cmd": [ - "adb", - "shell", - "cat", - "/sdcard/revenge_of_the_skiabot/SKP_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION", - "stdout": "/path/to/tmp/" - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-f", - "/sdcard/revenge_of_the_skiabot/SKP_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION" - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-rf", - "/sdcard/revenge_of_the_skiabot/skps" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/skps" - }, - { - "cmd": [ - "adb", - "shell", - "mkdir", - "-p", - "/sdcard/revenge_of_the_skiabot/skps" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": [ - "adb", - "push", - "[START_DIR]/tmp/SKP_VERSION", - "/sdcard/revenge_of_the_skiabot/SKP_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION" - }, - { - "cmd": [ - "python", - "-u", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "[START_DIR]/skia/infra/bots/assets/skimage/VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get downloaded skimage VERSION" - }, - { - "cmd": [ - "python", - "-u", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "42", - "[START_DIR]/tmp/SK_IMAGE_VERSION" - ], - "infra_step": true, - "name": "write SK_IMAGE_VERSION" - }, - { - "cmd": [ - "adb", - "shell", - "cat", - "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION", - "stdout": "/path/to/tmp/" - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-f", - "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-rf", - "/sdcard/revenge_of_the_skiabot/images" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/images" - }, - { - "cmd": [ - "adb", - "shell", - "mkdir", - "-p", - "/sdcard/revenge_of_the_skiabot/images" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": [ - "adb", - "push", - "[START_DIR]/tmp/SK_IMAGE_VERSION", - "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" - }, - { - "cmd": [ - "python", - "-u", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "[START_DIR]/skia/infra/bots/assets/svg/VERSION", - "/path/to/tmp/" - ], - "infra_step": true, - "name": "Get downloaded SVG VERSION" - }, - { - "cmd": [ - "python", - "-u", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "42", - "[START_DIR]/tmp/SVG_VERSION" - ], - "infra_step": true, - "name": "write SVG_VERSION" - }, - { - "cmd": [ - "adb", - "shell", - "cat", - "/sdcard/revenge_of_the_skiabot/SVG_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION", - "stdout": "/path/to/tmp/" - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-f", - "/sdcard/revenge_of_the_skiabot/SVG_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION" - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-rf", - "/sdcard/revenge_of_the_skiabot/svgs" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/svgs" - }, - { - "cmd": [ - "adb", - "shell", - "mkdir", - "-p", - "/sdcard/revenge_of_the_skiabot/svgs" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', '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": [ - "adb", - "push", - "[START_DIR]/tmp/SVG_VERSION", - "/sdcard/revenge_of_the_skiabot/SVG_VERSION" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION" - }, - { - "cmd": [ - "python", - "-u", - "RECIPE_MODULE[build::file]/resources/fileutil.py", - "rmtree", - "[CUSTOM_[SWARM_OUT_DIR]]/dm" - ], - "env": { - "PYTHONPATH": "[START_DIR]/skia/infra/bots/.recipe_deps/build/scripts" - }, - "infra_step": true, - "name": "rmtree dm" - }, - { - "cmd": [ - "python", - "-u", - "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", - "[CUSTOM_[SWARM_OUT_DIR]]/dm", - "511" - ], - "infra_step": true, - "name": "makedirs dm", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", - "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", - "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", - "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", - "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", - "@@@STEP_LOG_END@python.inline@@@" - ] - }, - { - "cmd": [ - "adb", - "shell", - "rm", - "-rf", - "/sdcard/revenge_of_the_skiabot/dm_out" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "rm /sdcard/revenge_of_the_skiabot/dm_out" - }, - { - "cmd": [ - "adb", - "shell", - "mkdir", - "-p", - "/sdcard/revenge_of_the_skiabot/dm_out" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "mkdir /sdcard/revenge_of_the_skiabot/dm_out" - }, - { - "cmd": [ - "python", - "-u", - "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", - "[START_DIR]/tmp", - "511" - ], - "infra_step": true, - "name": "makedirs tmp_dir", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@python.inline@@@@", - "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", - "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", - "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", - "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", - "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", - "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", - "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", - "@@@STEP_LOG_END@python.inline@@@" - ] - }, - { - "cmd": [ - "python", - "-u", - "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/_/hashes'\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": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s: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://gold.skia.org/_/hashes'@@@", - "@@@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", - "/sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "push [START_DIR]/tmp/uninteresting_hashes.txt /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt" - }, - { - "cmd": [ - "adb", - "push", - "[START_DIR]/out/Debug/dm", - "/data/local/tmp/" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "push dm" - }, - { - "cmd": [ - "python", - "-u", - "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", - "set -x; /data/local/tmp/dm --undefok --resourcePath /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/dm --colorImages /sdcard/revenge_of_the_skiabot/images/colorspace --nameByHash --properties gitHash abc123 master client.skia builder Test-Android-Clang-GalaxyTab3-GPU-Vivante-arm-Debug-Android build_number 5 --svgs /sdcard/revenge_of_the_skiabot/svgs --key arch arm compiler Clang configuration Debug cpu_or_gpu GPU cpu_or_gpu_value Vivante extra_config Android model GalaxyTab3 os Android --uninterestingHashesFile /sdcard/revenge_of_the_skiabot/uninteresting_hashes.txt --writePath /sdcard/revenge_of_the_skiabot/dm_out --nocpu --config 8888 srgb gles glesdft glessrgb glesmsaa4 serialize-8888 tiles_rt-8888 pic-8888 --src tests gm image colorImage svg --blacklist glessrgb image _ _ 8888 image _ _ _ test _ GrShape serialize-8888 gm _ bleed_image serialize-8888 gm _ c_gms serialize-8888 gm _ colortype serialize-8888 gm _ colortype_xfermodes serialize-8888 gm _ drawfilter serialize-8888 gm _ fontmgr_bounds_0.75_0 serialize-8888 gm _ fontmgr_bounds_1_-0.25 serialize-8888 gm _ fontmgr_bounds serialize-8888 gm _ fontmgr_match serialize-8888 gm _ fontmgr_iter serialize-8888 gm _ imagemasksubset serialize-8888 gm _ bitmapfilters serialize-8888 gm _ bitmapshaders serialize-8888 gm _ bleed serialize-8888 gm _ bleed_alpha_bmp serialize-8888 gm _ bleed_alpha_bmp_shader serialize-8888 gm _ convex_poly_clip serialize-8888 gm _ extractalpha serialize-8888 gm _ filterbitmap_checkerboard_32_32_g8 serialize-8888 gm _ filterbitmap_image_mandrill_64 serialize-8888 gm _ shadows serialize-8888 gm _ simpleaaclip_aaclip serialize-8888 gm _ composeshader_bitmap serialize-8888 gm _ scaled_tilemodes_npot serialize-8888 gm _ scaled_tilemodes serialize-8888 gm _ typefacerendering_pfaMac serialize-8888 gm _ parsedpaths serialize-8888 gm _ ImageGeneratorExternal_rect serialize-8888 gm _ ImageGeneratorExternal_shader serialize-8888 gm _ shadow_utils serialize-8888 gm _ bleed_alpha_image serialize-8888 gm _ bleed_alpha_image_shader serialize-8888 gm _ verylargebitmap serialize-8888 gm _ verylarge_picture_image pic-8888 gm _ drawfilter pic-8888 gm _ image-cacherator-from-picture serialize-8888 gm _ image-cacherator-from-picture pic-8888 gm _ image-cacherator-from-raster serialize-8888 gm _ image-cacherator-from-raster pic-8888 gm _ image-cacherator-from-ctable serialize-8888 gm _ image-cacherator-from-ctable pic-8888 gm _ gamut serialize-8888 gm _ gamut pic-8888 gm _ complexclip4_bw serialize-8888 gm _ complexclip4_bw pic-8888 gm _ complexclip4_aa serialize-8888 gm _ complexclip4_aa tiles_rt-8888 gm _ complexclip4_bw tiles_rt-8888 gm _ complexclip4_aa _ 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 _ gm _ scaled_tilemodes_npot; echo $? >/data/local/tmp/rc", - "[START_DIR]/tmp/dm.sh" - ], - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "write dm.sh" - }, - { - "cmd": [ - "adb", - "push", - "[START_DIR]/tmp/dm.sh", - "/data/local/tmp/" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "push dm.sh" - }, - { - "cmd": [ - "adb", - "logcat", - "-c" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "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(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', '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/", - "dm.sh" - ], - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "name": "dm", - "~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(['adb', 'shell', 'sh', bin_dir + sh])@@@", - "@@@STEP_LOG_LINE@python.inline@try:@@@", - "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', '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": [ - "adb", - "pull", - "/sdcard/revenge_of_the_skiabot/dm_out", - "[CUSTOM_[SWARM_OUT_DIR]]/dm" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", - "SKIA_OUT": "[START_DIR]/out" - }, - "infra_step": true, - "name": "pull /sdcard/revenge_of_the_skiabot/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm" - }, - { - "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/Debug" - ], - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s: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", - "kill-server" - ], - "cwd": "[START_DIR]/skia", - "env": { - "BUILDTYPE": "Debug", - "CHROME_HEADLESS": "1", - "PATH": "%(PATH)s: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/recipe_modules/sktest/example.expected/Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug.json b/infra/bots/recipe_modules/sktest/example.expected/Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug.json new file mode 100644 index 0000000000..8738558aeb --- /dev/null +++ b/infra/bots/recipe_modules/sktest/example.expected/Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug.json @@ -0,0 +1,1035 @@ +[ + { + "cmd": [ + "python", + "-u", + "\nimport os\nSSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json')\nwith open(SSH_MACHINE_FILE, 'r') as f:\n print f.read()\n" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read chromeos ip", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@SSH_MACHINE_FILE = os.path.expanduser('~/ssh_machine.json')@@@", + "@@@STEP_LOG_LINE@python.inline@with open(SSH_MACHINE_FILE, 'r') as f:@@@", + "@@@STEP_LOG_LINE@python.inline@ print f.read()@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/resources" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/resources" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "sudo", + "mount", + "-i", + "-o", + "remount,exec", + "/home/chronos" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "remount /home/chronos/user/ as exec" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/bin" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/bin" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/bin" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/bin" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/skia/resources", + "foo@127.0.0.1:/home/chronos/user/resources" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/skia/resources foo@127.0.0.1:/home/chronos/user/resources", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "[START_DIR]/skia/infra/bots/assets/skp/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get downloaded SKP VERSION" + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "42", + "[START_DIR]/tmp/SKP_VERSION" + ], + "infra_step": true, + "name": "write SKP_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "touch", + "/home/chronos/user/SKP_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "touch /home/chronos/user/SKP_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "cat", + "/home/chronos/user/SKP_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /home/chronos/user/SKP_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-f", + "/home/chronos/user/SKP_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/SKP_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/skps" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/skps" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/skps" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/skps" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/skp", + "foo@127.0.0.1:/home/chronos/user/skps" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/skp foo@127.0.0.1:/home/chronos/user/skps", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/SKP_VERSION", + "foo@127.0.0.1:/home/chronos/user/SKP_VERSION" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/SKP_VERSION foo@127.0.0.1:/home/chronos/user/SKP_VERSION", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "[START_DIR]/skia/infra/bots/assets/skimage/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get downloaded skimage VERSION" + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "42", + "[START_DIR]/tmp/SK_IMAGE_VERSION" + ], + "infra_step": true, + "name": "write SK_IMAGE_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "touch", + "/home/chronos/user/SK_IMAGE_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "touch /home/chronos/user/SK_IMAGE_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "cat", + "/home/chronos/user/SK_IMAGE_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /home/chronos/user/SK_IMAGE_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-f", + "/home/chronos/user/SK_IMAGE_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/SK_IMAGE_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/images" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/images" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/images" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/images" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/skimage", + "foo@127.0.0.1:/home/chronos/user/images" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/skimage foo@127.0.0.1:/home/chronos/user/images", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/SK_IMAGE_VERSION", + "foo@127.0.0.1:/home/chronos/user/SK_IMAGE_VERSION" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/SK_IMAGE_VERSION foo@127.0.0.1:/home/chronos/user/SK_IMAGE_VERSION", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "[START_DIR]/skia/infra/bots/assets/svg/VERSION", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Get downloaded SVG VERSION" + }, + { + "cmd": [ + "python", + "-u", + "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", + "42", + "[START_DIR]/tmp/SVG_VERSION" + ], + "infra_step": true, + "name": "write SVG_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "touch", + "/home/chronos/user/SVG_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "touch /home/chronos/user/SVG_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "cat", + "/home/chronos/user/SVG_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "read /home/chronos/user/SVG_VERSION", + "stdout": "/path/to/tmp/" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-f", + "/home/chronos/user/SVG_VERSION" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/SVG_VERSION" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/svgs" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/svgs" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/svgs" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/svgs" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "[START_DIR]/svg", + "foo@127.0.0.1:/home/chronos/user/svgs" + ], + "infra_step": true, + "name": "scp -r [START_DIR]/svg foo@127.0.0.1:/home/chronos/user/svgs", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/SVG_VERSION", + "foo@127.0.0.1:/home/chronos/user/SVG_VERSION" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/SVG_VERSION foo@127.0.0.1:/home/chronos/user/SVG_VERSION", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[build::file]/resources/fileutil.py", + "rmtree", + "[CUSTOM_[SWARM_OUT_DIR]]/dm" + ], + "env": { + "PYTHONPATH": "[START_DIR]/skia/infra/bots/.recipe_deps/build/scripts" + }, + "infra_step": true, + "name": "rmtree dm" + }, + { + "cmd": [ + "python", + "-u", + "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", + "[CUSTOM_[SWARM_OUT_DIR]]/dm", + "511" + ], + "infra_step": true, + "name": "makedirs dm", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", + "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", + "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "rm", + "-rf", + "/home/chronos/user/dm_out" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "rm /home/chronos/user/dm_out" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "mkdir", + "-p", + "/home/chronos/user/dm_out" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "mkdir /home/chronos/user/dm_out" + }, + { + "cmd": [ + "python", + "-u", + "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", + "[START_DIR]/tmp", + "511" + ], + "infra_step": true, + "name": "makedirs tmp_dir", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", + "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", + "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/_/hashes'\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": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s: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://gold.skia.org/_/hashes'@@@", + "@@@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": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/tmp/uninteresting_hashes.txt", + "foo@127.0.0.1:/home/chronos/user/uninteresting_hashes.txt" + ], + "infra_step": true, + "name": "scp [START_DIR]/tmp/uninteresting_hashes.txt foo@127.0.0.1:/home/chronos/user/uninteresting_hashes.txt", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nprint subprocess.check_output(['scp', host, device])\n", + "[START_DIR]/out/Debug/dm", + "foo@127.0.0.1:/home/chronos/user/bin/dm" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "scp [START_DIR]/out/Debug/dm foo@127.0.0.1:/home/chronos/user/bin/dm", + "~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@host = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output(['scp', host, device])@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "chmod", + "+x", + "/home/chronos/user/bin/dm" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "chmod dm" + }, + { + "cmd": [ + "ssh", + "-oConnectTimeout=15", + "-oBatchMode=yes", + "-t", + "-t", + "foo@127.0.0.1", + "/home/chronos/user/bin/dm", + "--undefok", + "--resourcePath", + "/home/chronos/user/resources", + "--skps", + "/home/chronos/user/skps", + "--images", + "/home/chronos/user/images/dm", + "--colorImages", + "/home/chronos/user/images/colorspace", + "--nameByHash", + "--properties", + "gitHash", + "abc123", + "master", + "client.skia", + "builder", + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug", + "build_number", + "5", + "--svgs", + "/home/chronos/user/svgs", + "--key", + "arch", + "arm", + "compiler", + "Clang", + "configuration", + "Debug", + "cpu_or_gpu", + "GPU", + "cpu_or_gpu_value", + "MaliT764", + "model", + "Chromebook_C100p", + "os", + "ChromeOS", + "--uninterestingHashesFile", + "/home/chronos/user/uninteresting_hashes.txt", + "--writePath", + "/home/chronos/user/dm_out", + "--nocpu", + "--config", + "gles", + "--src", + "tests", + "gm", + "image", + "colorImage", + "svg", + "--blacklist", + "_", + "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" + ], + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[START_DIR]/out" + }, + "infra_step": true, + "name": "dm" + }, + { + "cmd": [ + "python", + "-u", + "\nimport subprocess\nimport sys\nsrc = sys.argv[1] + '/*'\ndest = sys.argv[2]\nprint subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)\n", + "foo@127.0.0.1:/home/chronos/user/dm_out", + "[CUSTOM_[SWARM_OUT_DIR]]/dm" + ], + "infra_step": true, + "name": "scp -r foo@127.0.0.1:/home/chronos/user/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm", + "~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@src = sys.argv[1] + '/*'@@@", + "@@@STEP_LOG_LINE@python.inline@dest = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@print subprocess.check_output('scp -r %s %s' % (src, dest), shell=True)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipe_modules/sktest/example.py b/infra/bots/recipe_modules/sktest/example.py index 9a3e450780..c8899b1b3b 100644 --- a/infra/bots/recipe_modules/sktest/example.py +++ b/infra/bots/recipe_modules/sktest/example.py @@ -23,7 +23,6 @@ TEST_BUILDERS = { 'Test-Android-Clang-GalaxyJ5-GPU-Adreno306-arm-Release-Android', 'Test-Android-Clang-GalaxyS6-GPU-MaliT760-arm64-Debug-Android', 'Test-Android-Clang-GalaxyS7_G930A-GPU-Adreno530-arm64-Debug-Android', - 'Test-Android-Clang-GalaxyTab3-GPU-Vivante-arm-Debug-Android', 'Test-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug-GN_Android', 'Test-Android-Clang-Nexus10-GPU-MaliT604-arm-Release-GN_Android', 'Test-Android-Clang-Nexus5-GPU-Adreno330-arm-Release-Android', @@ -34,6 +33,7 @@ TEST_BUILDERS = { ('Test-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-' 'GN_Android_Vulkan'), 'Test-Android-Clang-PixelC-GPU-TegraX1-arm64-Debug-GN_Android', + 'Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug', 'Test-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug', 'Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug', 'Test-Mac-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug-CommandBuffer', @@ -102,6 +102,10 @@ def GenTests(api): if 'Win' in builder: test += api.platform('win', 64) + if 'ChromeOS' in builder: + test += api.step_data('read chromeos ip', + stdout=api.raw_io.output('{"user_ip":"foo@127.0.0.1"}')) + yield test diff --git a/infra/bots/recipe_modules/vars/api.py b/infra/bots/recipe_modules/vars/api.py index 9d88821be9..3dd3c3ae96 100644 --- a/infra/bots/recipe_modules/vars/api.py +++ b/infra/bots/recipe_modules/vars/api.py @@ -169,6 +169,8 @@ class SkiaVarsApi(recipe_api.RecipeApi): self.android_bin_dir = '/cache/skia/' self.android_data_dir = '/cache/skia/' + self.chromeos_homedir = '/home/chronos/user/' + @property def upload_dm_results(self): # TODO(borenet): Move this into the swarm_test recipe. diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index ec7acea48c..2f90c41df3 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -680,6 +680,18 @@ "Upload-Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-Android_Vulkan_Skpbench" ] }, + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug": { + "priority": 0.8, + "tasks": [ + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug" + ] + }, + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release": { + "priority": 0.8, + "tasks": [ + "Upload-Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release" + ] + }, "Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug": { "priority": 0.8, "tasks": [ @@ -1388,6 +1400,18 @@ "Upload-Test-Android-Clang-PixelXL-GPU-Adreno530-arm64-Release-Android_Vulkan" ] }, + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug": { + "priority": 0.8, + "tasks": [ + "Upload-Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug" + ] + }, + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release": { + "priority": 0.8, + "tasks": [ + "Upload-Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release" + ] + }, "Test-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug": { "priority": 0.8, "tasks": [ @@ -6109,6 +6133,106 @@ "max_attempts": 1, "priority": 0.8 }, + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug": { + "cipd_packages": [ + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:23" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:43" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:5" + } + ], + "dependencies": [ + "Build-Ubuntu-Clang-arm-Debug-Chromebook_C100p", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:MaliT764", + "os:ChromeOS", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "swarm_perf", + "repository=<(REPO)", + "buildername=Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "io_timeout_ns": 2400000000000, + "isolate": "perf_skia_bundled_unix.isolate", + "max_attempts": 1, + "priority": 0.8 + }, + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release": { + "cipd_packages": [ + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:23" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:43" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:5" + } + ], + "dependencies": [ + "Build-Ubuntu-Clang-arm-Release-Chromebook_C100p", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:MaliT764", + "os:ChromeOS", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "swarm_perf", + "repository=<(REPO)", + "buildername=Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "io_timeout_ns": 2400000000000, + "isolate": "perf_skia_bundled_unix.isolate", + "max_attempts": 1, + "priority": 0.8 + }, "Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Debug": { "cipd_packages": [ { @@ -12086,6 +12210,106 @@ "max_attempts": 1, "priority": 0.8 }, + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug": { + "cipd_packages": [ + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:23" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:43" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:5" + } + ], + "dependencies": [ + "Build-Ubuntu-Clang-arm-Debug-Chromebook_C100p", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:MaliT764", + "os:ChromeOS", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "swarm_test", + "repository=<(REPO)", + "buildername=Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "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-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release": { + "cipd_packages": [ + { + "name": "skia/bots/skimage", + "path": "skimage", + "version": "version:23" + }, + { + "name": "skia/bots/skp", + "path": "skp", + "version": "version:43" + }, + { + "name": "skia/bots/svg", + "path": "svg", + "version": "version:5" + } + ], + "dependencies": [ + "Build-Ubuntu-Clang-arm-Release-Chromebook_C100p", + "Housekeeper-PerCommit-BundleRecipes" + ], + "dimensions": [ + "gpu:MaliT764", + "os:ChromeOS", + "pool:Skia" + ], + "execution_timeout_ns": 14400000000000, + "expiration_ns": 72000000000000, + "extra_args": [ + "--workdir", + "../../..", + "swarm_test", + "repository=<(REPO)", + "buildername=Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "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-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug": { "cipd_packages": [ { @@ -16902,6 +17126,36 @@ "isolate": "upload_nano_results.isolate", "priority": 0.8 }, + "Upload-Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release": { + "dependencies": [ + "Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Ubuntu-14.04", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_nano_results", + "repository=<(REPO)", + "buildername=Perf-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)", + "gs_bucket=skia-perf" + ], + "isolate": "upload_nano_results.isolate", + "priority": 0.8 + }, "Upload-Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release": { "dependencies": [ "Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release" @@ -19092,6 +19346,66 @@ "isolate": "upload_dm_results.isolate", "priority": 0.8 }, + "Upload-Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug": { + "dependencies": [ + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Ubuntu-14.04", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_dm_results", + "repository=<(REPO)", + "buildername=Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Debug", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "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-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release": { + "dependencies": [ + "Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release" + ], + "dimensions": [ + "cpu:x86-64-avx2", + "gpu:none", + "os:Ubuntu-14.04", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "upload_dm_results", + "repository=<(REPO)", + "buildername=Test-ChromeOS-Clang-Chromebook_C100p-GPU-MaliT764-arm-Release", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "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-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug": { "dependencies": [ "Test-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug" |