6 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
15 "name": "makedirs tmp_dir"
21 "import os\nprint(os.environ.get('SWARMING_BOT_ID', ''))\n"
23 "name": "get swarming bot id",
24 "~followup_annotations": [
25 "@@@STEP_LOG_LINE@python.inline@import os@@@",
26 "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_BOT_ID', ''))@@@",
27 "@@@STEP_LOG_END@python.inline@@@"
32 "/usr/bin/adb.1.0.35",
36 "/sdcard/revenge_of_the_skiabot/resources"
38 "cwd": "[START_DIR]/skia",
40 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
41 "CHROME_HEADLESS": "1",
42 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
45 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
51 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([\n ADB, 'shell',\n 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (\n gov, cpu)]).decode('utf-8')\nactual_gov = subprocess.check_output([\n ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %\n cpu]).decode('utf-8').strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n",
52 "/usr/bin/adb.1.0.35",
57 "CHROME_HEADLESS": "1",
58 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
61 "name": "Set CPU 0's governor to userspace",
63 "~followup_annotations": [
64 "@@@STEP_LOG_LINE@python.inline@@@@",
65 "@@@STEP_LOG_LINE@python.inline@import os@@@",
66 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
67 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
68 "@@@STEP_LOG_LINE@python.inline@import time@@@",
69 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
70 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[2])@@@",
71 "@@@STEP_LOG_LINE@python.inline@gov = sys.argv[3]@@@",
72 "@@@STEP_LOG_LINE@python.inline@@@@",
73 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@",
74 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
75 "@@@STEP_LOG_LINE@python.inline@print(log)@@@",
76 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
77 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
78 "@@@STEP_LOG_LINE@python.inline@@@@",
79 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([@@@",
80 "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell',@@@",
81 "@@@STEP_LOG_LINE@python.inline@ 'echo \"%s\" > /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (@@@",
82 "@@@STEP_LOG_LINE@python.inline@ gov, cpu)]).decode('utf-8')@@@",
83 "@@@STEP_LOG_LINE@python.inline@actual_gov = subprocess.check_output([@@@",
84 "@@@STEP_LOG_LINE@python.inline@ ADB, 'shell', 'cat /sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' %@@@",
85 "@@@STEP_LOG_LINE@python.inline@ cpu]).decode('utf-8').strip()@@@",
86 "@@@STEP_LOG_LINE@python.inline@if actual_gov != gov:@@@",
87 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@",
88 "@@@STEP_LOG_LINE@python.inline@ % (actual_gov, gov))@@@",
89 "@@@STEP_LOG_END@python.inline@@@"
96 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ntarget_percent = float(sys.argv[2])\ncpu = int(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root']).decode('utf-8')\n# check for message like 'adbd cannot run as root in production builds'\nprint(log)\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nroot = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu\n\n# All devices we test on give a list of their available frequencies.\navailable_freqs = subprocess.check_output([ADB, 'shell',\n 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')\n\n# Check for message like '/system/bin/sh: file not found'\nif available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\nelse:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint('Setting frequency to %d' % freq)\n\n# If scaling_max_freq is lower than our attempted setting, it won't take.\n# We must set min first, because if we try to set max to be less than min\n# (which sometimes happens after certain devices reboot) it returns a\n# perplexing permissions error.\nsubprocess.check_call([ADB, 'shell', 'echo 0 > '\n '%s/scaling_min_freq' % root])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_max_freq' % (freq, root)])\nsubprocess.check_call([ADB, 'shell', 'echo %d > '\n '%s/scaling_setspeed' % (freq, root)])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '%s/scaling_cur_freq' % root]).decode('utf-8').strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
97 "/usr/bin/adb.1.0.35",
102 "CHROME_HEADLESS": "1",
103 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
106 "name": "Scale CPU 0 to 0.600000",
108 "~followup_annotations": [
109 "@@@STEP_LOG_LINE@python.inline@@@@",
110 "@@@STEP_LOG_LINE@python.inline@import os@@@",
111 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
112 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
113 "@@@STEP_LOG_LINE@python.inline@import time@@@",
114 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
115 "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[2])@@@",
116 "@@@STEP_LOG_LINE@python.inline@cpu = int(sys.argv[3])@@@",
117 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root']).decode('utf-8')@@@",
118 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
119 "@@@STEP_LOG_LINE@python.inline@print(log)@@@",
120 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
121 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
122 "@@@STEP_LOG_LINE@python.inline@@@@",
123 "@@@STEP_LOG_LINE@python.inline@root = '/sys/devices/system/cpu/cpu%d/cpufreq' %cpu@@@",
124 "@@@STEP_LOG_LINE@python.inline@@@@",
125 "@@@STEP_LOG_LINE@python.inline@# All devices we test on give a list of their available frequencies.@@@",
126 "@@@STEP_LOG_LINE@python.inline@available_freqs = subprocess.check_output([ADB, 'shell',@@@",
127 "@@@STEP_LOG_LINE@python.inline@ 'cat %s/scaling_available_frequencies' % root]).decode('utf-8')@@@",
128 "@@@STEP_LOG_LINE@python.inline@@@@",
129 "@@@STEP_LOG_LINE@python.inline@# Check for message like '/system/bin/sh: file not found'@@@",
130 "@@@STEP_LOG_LINE@python.inline@if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
131 "@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
132 "@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
133 "@@@STEP_LOG_LINE@python.inline@else:@@@",
134 "@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
135 "@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
136 "@@@STEP_LOG_LINE@python.inline@@@@",
137 "@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
138 "@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
139 "@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
140 "@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
141 "@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
142 "@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
143 "@@@STEP_LOG_LINE@python.inline@ break@@@",
144 "@@@STEP_LOG_LINE@python.inline@@@@",
145 "@@@STEP_LOG_LINE@python.inline@print('Setting frequency to %d' % freq)@@@",
146 "@@@STEP_LOG_LINE@python.inline@@@@",
147 "@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
148 "@@@STEP_LOG_LINE@python.inline@# We must set min first, because if we try to set max to be less than min@@@",
149 "@@@STEP_LOG_LINE@python.inline@# (which sometimes happens after certain devices reboot) it returns a@@@",
150 "@@@STEP_LOG_LINE@python.inline@# perplexing permissions error.@@@",
151 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo 0 > '@@@",
152 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_min_freq' % root])@@@",
153 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@",
154 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_max_freq' % (freq, root)])@@@",
155 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call([ADB, 'shell', 'echo %d > '@@@",
156 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_setspeed' % (freq, root)])@@@",
157 "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
158 "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
159 "@@@STEP_LOG_LINE@python.inline@ '%s/scaling_cur_freq' % root]).decode('utf-8').strip()@@@",
160 "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
161 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
162 "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
163 "@@@STEP_LOG_END@python.inline@@@"
168 "/usr/bin/adb.1.0.35",
170 "[START_DIR]/build/nanobench",
173 "cwd": "[START_DIR]/skia",
175 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
176 "CHROME_HEADLESS": "1",
177 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
180 "name": "push nanobench"
186 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
190 "[START_DIR]/skia/infra/bots/assets/text_blob_traces/VERSION",
194 "name": "Get text_blob_traces VERSION",
195 "~followup_annotations": [
196 "@@@STEP_LOG_LINE@VERSION@42@@@",
197 "@@@STEP_LOG_END@VERSION@@@"
204 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
209 "[START_DIR]/tmp/TEXTTRACES_VERSION"
212 "name": "write TEXTTRACES_VERSION",
213 "~followup_annotations": [
214 "@@@STEP_LOG_LINE@TEXTTRACES_VERSION@42@@@",
215 "@@@STEP_LOG_END@TEXTTRACES_VERSION@@@"
220 "/usr/bin/adb.1.0.35",
223 "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
225 "cwd": "[START_DIR]/skia",
227 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
228 "CHROME_HEADLESS": "1",
229 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
232 "name": "read /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
238 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
239 "/usr/bin/adb.1.0.35",
240 "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
243 "CHROME_HEADLESS": "1",
244 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
247 "name": "rm /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION",
248 "~followup_annotations": [
249 "@@@STEP_LOG_LINE@python.inline@@@@",
250 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
251 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
252 "@@@STEP_LOG_LINE@python.inline@@@@",
253 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
254 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
255 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
256 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
257 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
258 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
259 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
260 "@@@STEP_LOG_LINE@python.inline@@@@",
261 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
262 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
263 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
264 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
265 "@@@STEP_LOG_LINE@python.inline@try:@@@",
266 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
267 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
268 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
269 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
270 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
271 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
272 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
273 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
274 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
275 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
276 "@@@STEP_LOG_END@python.inline@@@"
283 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
284 "/usr/bin/adb.1.0.35",
285 "/sdcard/revenge_of_the_skiabot/text_blob_traces"
288 "CHROME_HEADLESS": "1",
289 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
292 "name": "rm /sdcard/revenge_of_the_skiabot/text_blob_traces",
293 "~followup_annotations": [
294 "@@@STEP_LOG_LINE@python.inline@@@@",
295 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
296 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
297 "@@@STEP_LOG_LINE@python.inline@@@@",
298 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
299 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
300 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
301 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
302 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
303 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
304 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
305 "@@@STEP_LOG_LINE@python.inline@@@@",
306 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
307 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
308 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
309 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
310 "@@@STEP_LOG_LINE@python.inline@try:@@@",
311 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
312 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
313 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
314 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
315 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
316 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
317 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
318 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
319 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
320 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
321 "@@@STEP_LOG_END@python.inline@@@"
326 "/usr/bin/adb.1.0.35",
330 "/sdcard/revenge_of_the_skiabot/text_blob_traces"
332 "cwd": "[START_DIR]/skia",
334 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
335 "CHROME_HEADLESS": "1",
336 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
339 "name": "mkdir /sdcard/revenge_of_the_skiabot/text_blob_traces"
345 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
349 "[START_DIR]/text_blob_traces",
353 "name": "ls [START_DIR]/text_blob_traces/*",
354 "~followup_annotations": [
355 "@@@STEP_LOG_LINE@glob@[START_DIR]/text_blob_traces/bar.jpg@@@",
356 "@@@STEP_LOG_LINE@glob@[START_DIR]/text_blob_traces/foo.png@@@",
357 "@@@STEP_LOG_END@glob@@@"
362 "/usr/bin/adb.1.0.35",
364 "[START_DIR]/text_blob_traces/bar.jpg",
365 "[START_DIR]/text_blob_traces/foo.png",
366 "/sdcard/revenge_of_the_skiabot/text_blob_traces"
368 "cwd": "[START_DIR]/skia",
370 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
371 "CHROME_HEADLESS": "1",
372 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
375 "name": "push --sync [START_DIR]/text_blob_traces/* /sdcard/revenge_of_the_skiabot/text_blob_traces"
379 "/usr/bin/adb.1.0.35",
381 "[START_DIR]/tmp/TEXTTRACES_VERSION",
382 "/sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
384 "cwd": "[START_DIR]/skia",
386 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
387 "CHROME_HEADLESS": "1",
388 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
391 "name": "push [START_DIR]/tmp/TEXTTRACES_VERSION /sdcard/revenge_of_the_skiabot/TEXTTRACES_VERSION"
397 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
401 "[START_DIR]/skia/resources",
405 "name": "ls [START_DIR]/skia/resources/*",
406 "~followup_annotations": [
407 "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/bar.jpg@@@",
408 "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/foo.png@@@",
409 "@@@STEP_LOG_END@glob@@@"
414 "/usr/bin/adb.1.0.35",
416 "[START_DIR]/skia/resources/bar.jpg",
417 "[START_DIR]/skia/resources/foo.png",
418 "/sdcard/revenge_of_the_skiabot/resources"
420 "cwd": "[START_DIR]/skia",
422 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
423 "CHROME_HEADLESS": "1",
424 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
427 "name": "push --sync [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources"
433 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
437 "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
441 "name": "Get skp VERSION",
442 "~followup_annotations": [
443 "@@@STEP_LOG_LINE@VERSION@42@@@",
444 "@@@STEP_LOG_END@VERSION@@@"
451 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
456 "[START_DIR]/tmp/SKP_VERSION"
459 "name": "write SKP_VERSION",
460 "~followup_annotations": [
461 "@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
462 "@@@STEP_LOG_END@SKP_VERSION@@@"
467 "/usr/bin/adb.1.0.35",
470 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
472 "cwd": "[START_DIR]/skia",
474 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
475 "CHROME_HEADLESS": "1",
476 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
479 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION"
485 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
486 "/usr/bin/adb.1.0.35",
487 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
490 "CHROME_HEADLESS": "1",
491 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
494 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION",
495 "~followup_annotations": [
496 "@@@STEP_LOG_LINE@python.inline@@@@",
497 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
498 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
499 "@@@STEP_LOG_LINE@python.inline@@@@",
500 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
501 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
502 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
503 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
504 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
505 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
506 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
507 "@@@STEP_LOG_LINE@python.inline@@@@",
508 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
509 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
510 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
511 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
512 "@@@STEP_LOG_LINE@python.inline@try:@@@",
513 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
514 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
515 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
516 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
517 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
518 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
519 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
520 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
521 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
522 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
523 "@@@STEP_LOG_END@python.inline@@@"
530 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
531 "/usr/bin/adb.1.0.35",
532 "/sdcard/revenge_of_the_skiabot/skps"
535 "CHROME_HEADLESS": "1",
536 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
539 "name": "rm /sdcard/revenge_of_the_skiabot/skps",
540 "~followup_annotations": [
541 "@@@STEP_LOG_LINE@python.inline@@@@",
542 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
543 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
544 "@@@STEP_LOG_LINE@python.inline@@@@",
545 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
546 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
547 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
548 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
549 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
550 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
551 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
552 "@@@STEP_LOG_LINE@python.inline@@@@",
553 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
554 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
555 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
556 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
557 "@@@STEP_LOG_LINE@python.inline@try:@@@",
558 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
559 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
560 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
561 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
562 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
563 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
564 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
565 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
566 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
567 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
568 "@@@STEP_LOG_END@python.inline@@@"
573 "/usr/bin/adb.1.0.35",
577 "/sdcard/revenge_of_the_skiabot/skps"
579 "cwd": "[START_DIR]/skia",
581 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
582 "CHROME_HEADLESS": "1",
583 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
586 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
592 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
600 "name": "ls [START_DIR]/skp/*",
601 "~followup_annotations": [
602 "@@@STEP_LOG_LINE@glob@[START_DIR]/skp/bar.jpg@@@",
603 "@@@STEP_LOG_LINE@glob@[START_DIR]/skp/foo.png@@@",
604 "@@@STEP_LOG_END@glob@@@"
609 "/usr/bin/adb.1.0.35",
611 "[START_DIR]/skp/bar.jpg",
612 "[START_DIR]/skp/foo.png",
613 "/sdcard/revenge_of_the_skiabot/skps"
615 "cwd": "[START_DIR]/skia",
617 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
618 "CHROME_HEADLESS": "1",
619 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
622 "name": "push --sync [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps"
626 "/usr/bin/adb.1.0.35",
628 "[START_DIR]/tmp/SKP_VERSION",
629 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
631 "cwd": "[START_DIR]/skia",
633 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
634 "CHROME_HEADLESS": "1",
635 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
638 "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
644 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
648 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
652 "name": "Get skimage VERSION",
653 "~followup_annotations": [
654 "@@@STEP_LOG_LINE@VERSION@42@@@",
655 "@@@STEP_LOG_END@VERSION@@@"
662 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
667 "[START_DIR]/tmp/SK_IMAGE_VERSION"
670 "name": "write SK_IMAGE_VERSION",
671 "~followup_annotations": [
672 "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
673 "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
678 "/usr/bin/adb.1.0.35",
681 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
683 "cwd": "[START_DIR]/skia",
685 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
686 "CHROME_HEADLESS": "1",
687 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
690 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
696 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
697 "/usr/bin/adb.1.0.35",
698 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
701 "CHROME_HEADLESS": "1",
702 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
705 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
706 "~followup_annotations": [
707 "@@@STEP_LOG_LINE@python.inline@@@@",
708 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
709 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
710 "@@@STEP_LOG_LINE@python.inline@@@@",
711 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
712 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
713 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
714 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
715 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
716 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
717 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
718 "@@@STEP_LOG_LINE@python.inline@@@@",
719 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
720 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
721 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
722 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
723 "@@@STEP_LOG_LINE@python.inline@try:@@@",
724 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
725 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
726 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
727 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
728 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
729 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
730 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
731 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
732 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
733 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
734 "@@@STEP_LOG_END@python.inline@@@"
741 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
742 "/usr/bin/adb.1.0.35",
743 "/sdcard/revenge_of_the_skiabot/images"
746 "CHROME_HEADLESS": "1",
747 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
750 "name": "rm /sdcard/revenge_of_the_skiabot/images",
751 "~followup_annotations": [
752 "@@@STEP_LOG_LINE@python.inline@@@@",
753 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
754 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
755 "@@@STEP_LOG_LINE@python.inline@@@@",
756 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
757 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
758 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
759 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
760 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
761 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
762 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
763 "@@@STEP_LOG_LINE@python.inline@@@@",
764 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
765 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
766 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
767 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
768 "@@@STEP_LOG_LINE@python.inline@try:@@@",
769 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
770 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
771 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
772 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
773 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
774 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
775 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
776 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
777 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
778 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
779 "@@@STEP_LOG_END@python.inline@@@"
784 "/usr/bin/adb.1.0.35",
788 "/sdcard/revenge_of_the_skiabot/images"
790 "cwd": "[START_DIR]/skia",
792 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
793 "CHROME_HEADLESS": "1",
794 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
797 "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
803 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
807 "[START_DIR]/skimage",
811 "name": "ls [START_DIR]/skimage/*",
812 "~followup_annotations": [
813 "@@@STEP_LOG_LINE@glob@[START_DIR]/skimage/bar.jpg@@@",
814 "@@@STEP_LOG_LINE@glob@[START_DIR]/skimage/foo.png@@@",
815 "@@@STEP_LOG_END@glob@@@"
820 "/usr/bin/adb.1.0.35",
822 "[START_DIR]/skimage/bar.jpg",
823 "[START_DIR]/skimage/foo.png",
824 "/sdcard/revenge_of_the_skiabot/images"
826 "cwd": "[START_DIR]/skia",
828 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
829 "CHROME_HEADLESS": "1",
830 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
833 "name": "push --sync [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images"
837 "/usr/bin/adb.1.0.35",
839 "[START_DIR]/tmp/SK_IMAGE_VERSION",
840 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
842 "cwd": "[START_DIR]/skia",
844 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
845 "CHROME_HEADLESS": "1",
846 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
849 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
855 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
859 "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
863 "name": "Get svg VERSION",
864 "~followup_annotations": [
865 "@@@STEP_LOG_LINE@VERSION@42@@@",
866 "@@@STEP_LOG_END@VERSION@@@"
873 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
878 "[START_DIR]/tmp/SVG_VERSION"
881 "name": "write SVG_VERSION",
882 "~followup_annotations": [
883 "@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
884 "@@@STEP_LOG_END@SVG_VERSION@@@"
889 "/usr/bin/adb.1.0.35",
892 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
894 "cwd": "[START_DIR]/skia",
896 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
897 "CHROME_HEADLESS": "1",
898 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
901 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION"
907 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
908 "/usr/bin/adb.1.0.35",
909 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
912 "CHROME_HEADLESS": "1",
913 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
916 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION",
917 "~followup_annotations": [
918 "@@@STEP_LOG_LINE@python.inline@@@@",
919 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
920 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
921 "@@@STEP_LOG_LINE@python.inline@@@@",
922 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
923 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
924 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
925 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
926 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
927 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
928 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
929 "@@@STEP_LOG_LINE@python.inline@@@@",
930 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
931 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
932 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
933 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
934 "@@@STEP_LOG_LINE@python.inline@try:@@@",
935 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
936 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
937 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
938 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
939 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
940 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
941 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
942 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
943 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
944 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
945 "@@@STEP_LOG_END@python.inline@@@"
952 "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n output = subprocess.check_output(\n cmd, stderr=subprocess.STDOUT).decode('utf-8')\nexcept subprocess.CalledProcessError as e:\n output = e.output.decode('utf-8')\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n raise Exception('%s exists despite being deleted' % path)\n",
953 "/usr/bin/adb.1.0.35",
954 "/sdcard/revenge_of_the_skiabot/svgs"
957 "CHROME_HEADLESS": "1",
958 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
961 "name": "rm /sdcard/revenge_of_the_skiabot/svgs",
962 "~followup_annotations": [
963 "@@@STEP_LOG_LINE@python.inline@@@@",
964 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
965 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
966 "@@@STEP_LOG_LINE@python.inline@@@@",
967 "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
968 "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
969 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
970 "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
971 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
972 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
973 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
974 "@@@STEP_LOG_LINE@python.inline@@@@",
975 "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
976 "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
977 "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
978 "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
979 "@@@STEP_LOG_LINE@python.inline@try:@@@",
980 "@@@STEP_LOG_LINE@python.inline@ output = subprocess.check_output(@@@",
981 "@@@STEP_LOG_LINE@python.inline@ cmd, stderr=subprocess.STDOUT).decode('utf-8')@@@",
982 "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
983 "@@@STEP_LOG_LINE@python.inline@ output = e.output.decode('utf-8')@@@",
984 "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
985 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
986 "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
987 "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
988 "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
989 "@@@STEP_LOG_LINE@python.inline@ raise Exception('%s exists despite being deleted' % path)@@@",
990 "@@@STEP_LOG_END@python.inline@@@"
995 "/usr/bin/adb.1.0.35",
999 "/sdcard/revenge_of_the_skiabot/svgs"
1001 "cwd": "[START_DIR]/skia",
1003 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
1004 "CHROME_HEADLESS": "1",
1005 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1008 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
1014 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
1016 "/path/to/tmp/json",
1022 "name": "ls [START_DIR]/svg/*",
1023 "~followup_annotations": [
1024 "@@@STEP_LOG_LINE@glob@[START_DIR]/svg/bar.jpg@@@",
1025 "@@@STEP_LOG_LINE@glob@[START_DIR]/svg/foo.png@@@",
1026 "@@@STEP_LOG_END@glob@@@"
1031 "/usr/bin/adb.1.0.35",
1033 "[START_DIR]/svg/bar.jpg",
1034 "[START_DIR]/svg/foo.png",
1035 "/sdcard/revenge_of_the_skiabot/svgs"
1037 "cwd": "[START_DIR]/skia",
1039 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
1040 "CHROME_HEADLESS": "1",
1041 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1044 "name": "push --sync [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs"
1048 "/usr/bin/adb.1.0.35",
1050 "[START_DIR]/tmp/SVG_VERSION",
1051 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
1053 "cwd": "[START_DIR]/skia",
1055 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
1056 "CHROME_HEADLESS": "1",
1057 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1060 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
1066 "import os\nprint(os.environ.get('SWARMING_TASK_ID', ''))\n"
1068 "name": "get swarming task id",
1069 "~followup_annotations": [
1070 "@@@STEP_LOG_LINE@python.inline@import os@@@",
1071 "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_TASK_ID', ''))@@@",
1072 "@@@STEP_LOG_END@python.inline@@@"
1079 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
1081 "/path/to/tmp/json",
1083 "set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/nanobench --example --flags -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --texttraces /sdcard/revenge_of_the_skiabot/text_blob_traces --svgs /sdcard/revenge_of_the_skiabot/svgs; echo $? >/data/local/tmp/rc",
1084 "[START_DIR]/tmp/nanobench.sh"
1087 "CHROME_HEADLESS": "1",
1088 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1091 "name": "write nanobench.sh",
1092 "~followup_annotations": [
1093 "@@@STEP_LOG_LINE@nanobench.sh@set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/nanobench --example --flags -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --texttraces /sdcard/revenge_of_the_skiabot/text_blob_traces --svgs /sdcard/revenge_of_the_skiabot/svgs; echo $? >/data/local/tmp/rc@@@",
1094 "@@@STEP_LOG_END@nanobench.sh@@@"
1099 "/usr/bin/adb.1.0.35",
1101 "[START_DIR]/tmp/nanobench.sh",
1104 "cwd": "[START_DIR]/skia",
1106 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
1107 "CHROME_HEADLESS": "1",
1108 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1111 "name": "push nanobench.sh"
1115 "/usr/bin/adb.1.0.35",
1119 "cwd": "[START_DIR]/skia",
1121 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
1122 "CHROME_HEADLESS": "1",
1123 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1132 "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output([\n '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))\nexcept ValueError:\n print(\"Couldn't read the return code. Probably killed for OOM.\")\n sys.exit(1)\n",
1137 "CHROME_HEADLESS": "1",
1138 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1140 "name": "nanobench",
1141 "~followup_annotations": [
1142 "@@@STEP_LOG_LINE@python.inline@@@@",
1143 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
1144 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
1145 "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
1146 "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
1147 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['/usr/bin/adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@",
1148 "@@@STEP_LOG_LINE@python.inline@try:@@@",
1149 "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output([@@@",
1150 "@@@STEP_LOG_LINE@python.inline@ '/usr/bin/adb.1.0.35', 'shell', 'cat', bin_dir + 'rc']).decode('utf-8')))@@@",
1151 "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
1152 "@@@STEP_LOG_LINE@python.inline@ print(\"Couldn't read the return code. Probably killed for OOM.\")@@@",
1153 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
1154 "@@@STEP_LOG_END@python.inline@@@"
1161 "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output([\n '/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8', errors='ignore')\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 try:\n sym = subprocess.check_output([\n 'addr2line', '-Cfpe', local, addr]).decode('utf-8')\n line = line.replace(addr, addr + ' ' + sym.strip())\n except subprocess.CalledProcessError:\n pass\n print(line)\n",
1165 "CHROME_HEADLESS": "1",
1166 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1171 "~followup_annotations": [
1172 "@@@STEP_LOG_LINE@python.inline@@@@",
1173 "@@@STEP_LOG_LINE@python.inline@import os@@@",
1174 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
1175 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
1176 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
1177 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([@@@",
1178 "@@@STEP_LOG_LINE@python.inline@ '/usr/bin/adb.1.0.35', 'logcat', '-d']).decode('utf-8', errors='ignore')@@@",
1179 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
1180 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
1181 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
1182 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
1183 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
1184 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
1185 "@@@STEP_LOG_LINE@python.inline@ try:@@@",
1186 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output([@@@",
1187 "@@@STEP_LOG_LINE@python.inline@ 'addr2line', '-Cfpe', local, addr]).decode('utf-8')@@@",
1188 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
1189 "@@@STEP_LOG_LINE@python.inline@ except subprocess.CalledProcessError:@@@",
1190 "@@@STEP_LOG_LINE@python.inline@ pass@@@",
1191 "@@@STEP_LOG_LINE@python.inline@ print(line)@@@",
1192 "@@@STEP_LOG_END@python.inline@@@"
1197 "/usr/bin/adb.1.0.35",
1200 "cwd": "[START_DIR]/skia",
1202 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
1203 "CHROME_HEADLESS": "1",
1204 "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
1207 "name": "kill adb server"