1 [ 2 { 3 "cmd": [ 4 "python", 5 "-u", 6 "\nimport os\nCHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')\nwith open(CHROMECAST_IP_FILE, 'r') as f:\n print f.read()\n" 7 ], 8 "env": { 9 "BUILDTYPE": "Release", 10 "CHROME_HEADLESS": "1", 11 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 12 "SKIA_OUT": "[START_DIR]/out" 13 }, 14 "infra_step": true, 15 "name": "read chromecast ip", 16 "stdout": "/path/to/tmp/", 17 "~followup_annotations": [ 18 "@@@STEP_LOG_LINE (a] python.inline@@@@", 19 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 20 "@@@STEP_LOG_LINE (a] python.inline@CHROMECAST_IP_FILE = os.path.expanduser('~/chromecast.txt')@@@", 21 "@@@STEP_LOG_LINE (a] python.inline@with open(CHROMECAST_IP_FILE, 'r') as f:@@@", 22 "@@@STEP_LOG_LINE (a] python.inline@ print f.read()@@@", 23 "@@@STEP_LOG_END (a] python.inline@@@" 24 ] 25 }, 26 { 27 "cmd": [ 28 "adb", 29 "connect", 30 "192.168.1.2:5555" 31 ], 32 "env": { 33 "BUILDTYPE": "Release", 34 "CHROME_HEADLESS": "1", 35 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 36 "SKIA_OUT": "[START_DIR]/out" 37 }, 38 "infra_step": true, 39 "name": "adb connect 192.168.1.2:5555" 40 }, 41 { 42 "cmd": [ 43 "adb", 44 "shell", 45 "mkdir", 46 "-p", 47 "/cache/skia/resources" 48 ], 49 "cwd": "[START_DIR]/skia", 50 "env": { 51 "BUILDTYPE": "Release", 52 "CHROME_HEADLESS": "1", 53 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 54 "SKIA_OUT": "[START_DIR]/out" 55 }, 56 "infra_step": true, 57 "name": "mkdir /cache/skia/resources" 58 }, 59 { 60 "cmd": [ 61 "adb", 62 "shell", 63 "mkdir", 64 "-p", 65 "/cache/skia/bin" 66 ], 67 "cwd": "[START_DIR]/skia", 68 "env": { 69 "BUILDTYPE": "Release", 70 "CHROME_HEADLESS": "1", 71 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 72 "SKIA_OUT": "[START_DIR]/out" 73 }, 74 "infra_step": true, 75 "name": "mkdir /cache/skia/bin" 76 }, 77 { 78 "cmd": [ 79 "python", 80 "-u", 81 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", 82 "[START_DIR]/skia/resources", 83 "/cache/skia/resources" 84 ], 85 "env": { 86 "BUILDTYPE": "Release", 87 "CHROME_HEADLESS": "1", 88 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 89 "SKIA_OUT": "[START_DIR]/out" 90 }, 91 "infra_step": true, 92 "name": "push [START_DIR]/skia/resources/* /cache/skia/resources", 93 "~followup_annotations": [ 94 "@@@STEP_LOG_LINE (a] python.inline@@@@", 95 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 96 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 97 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 98 "@@@STEP_LOG_LINE (a] python.inline@host = sys.argv[1]@@@", 99 "@@@STEP_LOG_LINE (a] python.inline@device = sys.argv[2]@@@", 100 "@@@STEP_LOG_LINE (a] python.inline@for d, _, fs in os.walk(host):@@@", 101 "@@@STEP_LOG_LINE (a] python.inline@ p = os.path.relpath(d, host)@@@", 102 "@@@STEP_LOG_LINE (a] python.inline@ if p != '.' and p.startswith('.'):@@@", 103 "@@@STEP_LOG_LINE (a] python.inline@ continue@@@", 104 "@@@STEP_LOG_LINE (a] python.inline@ for f in fs:@@@", 105 "@@@STEP_LOG_LINE (a] python.inline@ print os.path.join(p,f)@@@", 106 "@@@STEP_LOG_LINE (a] python.inline@ hp = os.path.realpath(os.path.join(host, p, f))@@@", 107 "@@@STEP_LOG_LINE (a] python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", 108 "@@@STEP_LOG_LINE (a] python.inline@ print \"Skipping because it is too big\"@@@", 109 "@@@STEP_LOG_LINE (a] python.inline@ else:@@@", 110 "@@@STEP_LOG_LINE (a] python.inline@ subprocess.check_call(['adb', 'push',@@@", 111 "@@@STEP_LOG_LINE (a] python.inline@ hp, os.path.join(device, p, f)])@@@", 112 "@@@STEP_LOG_END (a] python.inline@@@" 113 ] 114 }, 115 { 116 "cmd": [ 117 "python", 118 "-u", 119 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 120 "--json-output", 121 "/path/to/tmp/json", 122 "copy", 123 "[START_DIR]/skia/infra/bots/assets/skp/VERSION", 124 "/path/to/tmp/" 125 ], 126 "infra_step": true, 127 "name": "Get downloaded SKP VERSION" 128 }, 129 { 130 "cmd": [ 131 "python", 132 "-u", 133 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 134 "--json-output", 135 "/path/to/tmp/json", 136 "copy", 137 "42", 138 "[START_DIR]/tmp/SKP_VERSION" 139 ], 140 "infra_step": true, 141 "name": "write SKP_VERSION" 142 }, 143 { 144 "cmd": [ 145 "adb", 146 "shell", 147 "cat", 148 "/cache/skia/SKP_VERSION" 149 ], 150 "cwd": "[START_DIR]/skia", 151 "env": { 152 "BUILDTYPE": "Release", 153 "CHROME_HEADLESS": "1", 154 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 155 "SKIA_OUT": "[START_DIR]/out" 156 }, 157 "infra_step": true, 158 "name": "read /cache/skia/SKP_VERSION", 159 "stdout": "/path/to/tmp/" 160 }, 161 { 162 "cmd": [ 163 "adb", 164 "shell", 165 "rm", 166 "-f", 167 "/cache/skia/SKP_VERSION" 168 ], 169 "cwd": "[START_DIR]/skia", 170 "env": { 171 "BUILDTYPE": "Release", 172 "CHROME_HEADLESS": "1", 173 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 174 "SKIA_OUT": "[START_DIR]/out" 175 }, 176 "infra_step": true, 177 "name": "rm /cache/skia/SKP_VERSION" 178 }, 179 { 180 "cmd": [ 181 "adb", 182 "shell", 183 "rm", 184 "-r", 185 "/cache/skia/skps" 186 ], 187 "cwd": "[START_DIR]/skia", 188 "env": { 189 "BUILDTYPE": "Release", 190 "CHROME_HEADLESS": "1", 191 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 192 "SKIA_OUT": "[START_DIR]/out" 193 }, 194 "infra_step": true, 195 "name": "rm /cache/skia/skps" 196 }, 197 { 198 "cmd": [ 199 "adb", 200 "shell", 201 "mkdir", 202 "-p", 203 "/cache/skia/skps" 204 ], 205 "cwd": "[START_DIR]/skia", 206 "env": { 207 "BUILDTYPE": "Release", 208 "CHROME_HEADLESS": "1", 209 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 210 "SKIA_OUT": "[START_DIR]/out" 211 }, 212 "infra_step": true, 213 "name": "mkdir /cache/skia/skps" 214 }, 215 { 216 "cmd": [ 217 "python", 218 "-u", 219 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n hp = os.path.realpath(os.path.join(host, p, f))\n if os.stat(hp).st_size > (1.5 * 1024 * 1024):\n print \"Skipping because it is too big\"\n else:\n subprocess.check_call(['adb', 'push',\n hp, os.path.join(device, p, f)])\n", 220 "[START_DIR]/skp", 221 "/cache/skia/skps" 222 ], 223 "env": { 224 "BUILDTYPE": "Release", 225 "CHROME_HEADLESS": "1", 226 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 227 "SKIA_OUT": "[START_DIR]/out" 228 }, 229 "infra_step": true, 230 "name": "push [START_DIR]/skp/* /cache/skia/skps", 231 "~followup_annotations": [ 232 "@@@STEP_LOG_LINE (a] python.inline@@@@", 233 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 234 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 235 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 236 "@@@STEP_LOG_LINE (a] python.inline@host = sys.argv[1]@@@", 237 "@@@STEP_LOG_LINE (a] python.inline@device = sys.argv[2]@@@", 238 "@@@STEP_LOG_LINE (a] python.inline@for d, _, fs in os.walk(host):@@@", 239 "@@@STEP_LOG_LINE (a] python.inline@ p = os.path.relpath(d, host)@@@", 240 "@@@STEP_LOG_LINE (a] python.inline@ if p != '.' and p.startswith('.'):@@@", 241 "@@@STEP_LOG_LINE (a] python.inline@ continue@@@", 242 "@@@STEP_LOG_LINE (a] python.inline@ for f in fs:@@@", 243 "@@@STEP_LOG_LINE (a] python.inline@ print os.path.join(p,f)@@@", 244 "@@@STEP_LOG_LINE (a] python.inline@ hp = os.path.realpath(os.path.join(host, p, f))@@@", 245 "@@@STEP_LOG_LINE (a] python.inline@ if os.stat(hp).st_size > (1.5 * 1024 * 1024):@@@", 246 "@@@STEP_LOG_LINE (a] python.inline@ print \"Skipping because it is too big\"@@@", 247 "@@@STEP_LOG_LINE (a] python.inline@ else:@@@", 248 "@@@STEP_LOG_LINE (a] python.inline@ subprocess.check_call(['adb', 'push',@@@", 249 "@@@STEP_LOG_LINE (a] python.inline@ hp, os.path.join(device, p, f)])@@@", 250 "@@@STEP_LOG_END (a] python.inline@@@" 251 ] 252 }, 253 { 254 "cmd": [ 255 "adb", 256 "push", 257 "[START_DIR]/tmp/SKP_VERSION", 258 "/cache/skia/SKP_VERSION" 259 ], 260 "cwd": "[START_DIR]/skia", 261 "env": { 262 "BUILDTYPE": "Release", 263 "CHROME_HEADLESS": "1", 264 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 265 "SKIA_OUT": "[START_DIR]/out" 266 }, 267 "infra_step": true, 268 "name": "push [START_DIR]/tmp/SKP_VERSION /cache/skia/SKP_VERSION" 269 }, 270 { 271 "cmd": [ 272 "adb", 273 "shell", 274 "rm", 275 "-r", 276 "/dev/shm/skia/dm_out" 277 ], 278 "cwd": "[START_DIR]/skia", 279 "env": { 280 "BUILDTYPE": "Release", 281 "CHROME_HEADLESS": "1", 282 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 283 "SKIA_OUT": "[START_DIR]/out" 284 }, 285 "infra_step": true, 286 "name": "rm /dev/shm/skia/dm_out" 287 }, 288 { 289 "cmd": [ 290 "adb", 291 "shell", 292 "mkdir", 293 "-p", 294 "/dev/shm/skia/dm_out" 295 ], 296 "cwd": "[START_DIR]/skia", 297 "env": { 298 "BUILDTYPE": "Release", 299 "CHROME_HEADLESS": "1", 300 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 301 "SKIA_OUT": "[START_DIR]/out" 302 }, 303 "infra_step": true, 304 "name": "mkdir /dev/shm/skia/dm_out" 305 }, 306 { 307 "cmd": [ 308 "python", 309 "-u", 310 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 311 "--json-output", 312 "/path/to/tmp/json", 313 "ensure-directory", 314 "--mode", 315 "0777", 316 "[START_DIR]/tmp" 317 ], 318 "infra_step": true, 319 "name": "makedirs tmp_dir" 320 }, 321 { 322 "cmd": [ 323 "python", 324 "-u", 325 "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n", 326 "[START_DIR]/tmp/uninteresting_hashes.txt" 327 ], 328 "env": { 329 "BUILDTYPE": "Release", 330 "CHROME_HEADLESS": "1", 331 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 332 "SKIA_OUT": "[START_DIR]/out" 333 }, 334 "infra_step": true, 335 "name": "get uninteresting hashes", 336 "~followup_annotations": [ 337 "@@@STEP_LOG_LINE (a] python.inline@@@@", 338 "@@@STEP_LOG_LINE (a] python.inline@import contextlib@@@", 339 "@@@STEP_LOG_LINE (a] python.inline@import math@@@", 340 "@@@STEP_LOG_LINE (a] python.inline@import socket@@@", 341 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 342 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 343 "@@@STEP_LOG_LINE (a] python.inline@import urllib2@@@", 344 "@@@STEP_LOG_LINE (a] python.inline@@@@", 345 "@@@STEP_LOG_LINE (a] python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@", 346 "@@@STEP_LOG_LINE (a] python.inline@RETRIES = 5@@@", 347 "@@@STEP_LOG_LINE (a] python.inline@TIMEOUT = 60@@@", 348 "@@@STEP_LOG_LINE (a] python.inline@WAIT_BASE = 15@@@", 349 "@@@STEP_LOG_LINE (a] python.inline@@@@", 350 "@@@STEP_LOG_LINE (a] python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", 351 "@@@STEP_LOG_LINE (a] python.inline@for retry in range(RETRIES):@@@", 352 "@@@STEP_LOG_LINE (a] python.inline@ try:@@@", 353 "@@@STEP_LOG_LINE (a] python.inline@ with contextlib.closing(@@@", 354 "@@@STEP_LOG_LINE (a] python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", 355 "@@@STEP_LOG_LINE (a] python.inline@ hashes = w.read()@@@", 356 "@@@STEP_LOG_LINE (a] python.inline@ with open(sys.argv[1], 'w') as f:@@@", 357 "@@@STEP_LOG_LINE (a] python.inline@ f.write(hashes)@@@", 358 "@@@STEP_LOG_LINE (a] python.inline@ break@@@", 359 "@@@STEP_LOG_LINE (a] python.inline@ except Exception as e:@@@", 360 "@@@STEP_LOG_LINE (a] python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", 361 "@@@STEP_LOG_LINE (a] python.inline@ print e@@@", 362 "@@@STEP_LOG_LINE (a] python.inline@ if retry == RETRIES:@@@", 363 "@@@STEP_LOG_LINE (a] python.inline@ raise@@@", 364 "@@@STEP_LOG_LINE (a] python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", 365 "@@@STEP_LOG_LINE (a] python.inline@ print 'Retry in %d seconds.' % waittime@@@", 366 "@@@STEP_LOG_LINE (a] python.inline@ time.sleep(waittime)@@@", 367 "@@@STEP_LOG_END (a] python.inline@@@" 368 ] 369 }, 370 { 371 "cmd": [ 372 "adb", 373 "push", 374 "[START_DIR]/tmp/uninteresting_hashes.txt", 375 "/cache/skia/uninteresting_hashes.txt" 376 ], 377 "cwd": "[START_DIR]/skia", 378 "env": { 379 "BUILDTYPE": "Release", 380 "CHROME_HEADLESS": "1", 381 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 382 "SKIA_OUT": "[START_DIR]/out" 383 }, 384 "infra_step": true, 385 "name": "push [START_DIR]/tmp/uninteresting_hashes.txt /cache/skia/uninteresting_hashes.txt" 386 }, 387 { 388 "cmd": [ 389 "python", 390 "-u", 391 "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n" 392 ], 393 "name": "get swarming bot id", 394 "stdout": "/path/to/tmp/", 395 "~followup_annotations": [ 396 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 397 "@@@STEP_LOG_LINE (a] python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@", 398 "@@@STEP_LOG_END (a] python.inline@@@" 399 ] 400 }, 401 { 402 "cmd": [ 403 "python", 404 "-u", 405 "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n" 406 ], 407 "name": "get swarming task id", 408 "stdout": "/path/to/tmp/", 409 "~followup_annotations": [ 410 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 411 "@@@STEP_LOG_LINE (a] python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@", 412 "@@@STEP_LOG_END (a] python.inline@@@" 413 ] 414 }, 415 { 416 "cmd": [ 417 "adb", 418 "push", 419 "[START_DIR]/out/Release/dm", 420 "/cache/skia/bin" 421 ], 422 "cwd": "[START_DIR]/skia", 423 "env": { 424 "BUILDTYPE": "Release", 425 "CHROME_HEADLESS": "1", 426 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 427 "SKIA_OUT": "[START_DIR]/out" 428 }, 429 "infra_step": true, 430 "name": "push dm" 431 }, 432 { 433 "cmd": [ 434 "ssh", 435 "-oConnectTimeout=15", 436 "-oBatchMode=yes", 437 "-t", 438 "-t", 439 "root (a] 192.168.1.2", 440 "/cache/skia/bin/dm", 441 "--resourcePath", 442 "/cache/skia/resources", 443 "--skps", 444 "/cache/skia/skps", 445 "--images", 446 "/cache/skia/resources/images/color_wheel.jpg", 447 "--nameByHash", 448 "--properties", 449 "gitHash", 450 "abc123", 451 "builder", 452 "Test-Chromecast-GCC-Chorizo-GPU-Cortex_A7-arm-Release-All", 453 "buildbucket_build_id", 454 "123454321", 455 "swarming_bot_id", 456 "skia-bot-123", 457 "swarming_task_id", 458 "123456", 459 "--key", 460 "arch", 461 "arm", 462 "compiler", 463 "GCC", 464 "configuration", 465 "Release", 466 "cpu_or_gpu", 467 "GPU", 468 "cpu_or_gpu_value", 469 "Cortex_A7", 470 "model", 471 "Chorizo", 472 "os", 473 "Chromecast", 474 "--uninterestingHashesFile", 475 "/cache/skia/uninteresting_hashes.txt", 476 "--writePath", 477 "/dev/shm/skia/dm_out", 478 "--dont_write", 479 "pdf", 480 "--randomProcessorTest", 481 "--threads", 482 "0", 483 "--ignoreSigInt", 484 "--nocpu", 485 "--config", 486 "gles", 487 "--src", 488 "tests", 489 "gm", 490 "image", 491 "colorImage", 492 "svg", 493 "--blacklist", 494 "_", 495 "svg", 496 "_", 497 "svgparse_", 498 "_", 499 "test", 500 "_", 501 "GrShape", 502 "_", 503 "image", 504 "_", 505 "interlaced1.png", 506 "_", 507 "image", 508 "_", 509 "interlaced2.png", 510 "_", 511 "image", 512 "_", 513 "interlaced3.png", 514 "_", 515 "image", 516 "_", 517 ".arw", 518 "_", 519 "image", 520 "_", 521 ".cr2", 522 "_", 523 "image", 524 "_", 525 ".dng", 526 "_", 527 "image", 528 "_", 529 ".nef", 530 "_", 531 "image", 532 "_", 533 ".nrw", 534 "_", 535 "image", 536 "_", 537 ".orf", 538 "_", 539 "image", 540 "_", 541 ".raf", 542 "_", 543 "image", 544 "_", 545 ".rw2", 546 "_", 547 "image", 548 "_", 549 ".pef", 550 "_", 551 "image", 552 "_", 553 ".srw", 554 "_", 555 "image", 556 "_", 557 ".ARW", 558 "_", 559 "image", 560 "_", 561 ".CR2", 562 "_", 563 "image", 564 "_", 565 ".DNG", 566 "_", 567 "image", 568 "_", 569 ".NEF", 570 "_", 571 "image", 572 "_", 573 ".NRW", 574 "_", 575 "image", 576 "_", 577 ".ORF", 578 "_", 579 "image", 580 "_", 581 ".RAF", 582 "_", 583 "image", 584 "_", 585 ".RW2", 586 "_", 587 "image", 588 "_", 589 ".PEF", 590 "_", 591 "image", 592 "_", 593 ".SRW", 594 "--match", 595 "~animated-image-blurs", 596 "~blur_0.01", 597 "~blur_image_filter", 598 "~imageblur2", 599 "~lighting", 600 "~longpathdash", 601 "~matrixconvolution", 602 "~textblobmixedsizes_df", 603 "~textblobrandomfont", 604 "~bigbitmaprect_", 605 "~DrawBitmapRect", 606 "~drawbitmaprect", 607 "~GM_animated-image-blurs", 608 "~ImageFilterBlurLargeImage", 609 "~savelayer_clipmask", 610 "~TextBlobCache", 611 "~verylarge", 612 "--nonativeFonts", 613 "--verbose" 614 ], 615 "env": { 616 "BUILDTYPE": "Release", 617 "CHROME_HEADLESS": "1", 618 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 619 "SKIA_OUT": "[START_DIR]/out" 620 }, 621 "name": "dm" 622 }, 623 { 624 "cmd": [ 625 "adb", 626 "pull", 627 "/dev/shm/skia/dm_out", 628 "[CUSTOM_[SWARM_OUT_DIR]]/dm" 629 ], 630 "cwd": "[START_DIR]/skia", 631 "env": { 632 "BUILDTYPE": "Release", 633 "CHROME_HEADLESS": "1", 634 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 635 "SKIA_OUT": "[START_DIR]/out" 636 }, 637 "infra_step": true, 638 "name": "pull /dev/shm/skia/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm" 639 }, 640 { 641 "cmd": [ 642 "ssh", 643 "-oConnectTimeout=15", 644 "-oBatchMode=yes", 645 "-t", 646 "-t", 647 "root (a] 192.168.1.2", 648 "rm", 649 "-r", 650 "/cache/skia/bin" 651 ], 652 "env": { 653 "BUILDTYPE": "Release", 654 "CHROME_HEADLESS": "1", 655 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 656 "SKIA_OUT": "[START_DIR]/out" 657 }, 658 "infra_step": true, 659 "name": "Delete executables" 660 }, 661 { 662 "cmd": [ 663 "adb", 664 "disconnect" 665 ], 666 "cwd": "[START_DIR]/skia", 667 "env": { 668 "BUILDTYPE": "Release", 669 "CHROME_HEADLESS": "1", 670 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 671 "SKIA_OUT": "[START_DIR]/out" 672 }, 673 "infra_step": true, 674 "name": "disconnect" 675 }, 676 { 677 "cmd": [ 678 "adb", 679 "connect", 680 "192.168.1.2:5555" 681 ], 682 "env": { 683 "BUILDTYPE": "Release", 684 "CHROME_HEADLESS": "1", 685 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 686 "SKIA_OUT": "[START_DIR]/out" 687 }, 688 "infra_step": true, 689 "name": "adb connect 192.168.1.2:5555 (2)" 690 }, 691 { 692 "cmd": [ 693 "python", 694 "-u", 695 "\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", 696 "[START_DIR]/out/Release" 697 ], 698 "env": { 699 "BUILDTYPE": "Release", 700 "CHROME_HEADLESS": "1", 701 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 702 "SKIA_OUT": "[START_DIR]/out" 703 }, 704 "infra_step": true, 705 "name": "dump log", 706 "~followup_annotations": [ 707 "@@@STEP_LOG_LINE (a] python.inline@@@@", 708 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 709 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 710 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 711 "@@@STEP_LOG_LINE (a] python.inline@out = sys.argv[1]@@@", 712 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@", 713 "@@@STEP_LOG_LINE (a] python.inline@for line in log.split('\\n'):@@@", 714 "@@@STEP_LOG_LINE (a] python.inline@ tokens = line.split()@@@", 715 "@@@STEP_LOG_LINE (a] python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", 716 "@@@STEP_LOG_LINE (a] python.inline@ addr, path = tokens[-2:]@@@", 717 "@@@STEP_LOG_LINE (a] python.inline@ local = os.path.join(out, os.path.basename(path))@@@", 718 "@@@STEP_LOG_LINE (a] python.inline@ if os.path.exists(local):@@@", 719 "@@@STEP_LOG_LINE (a] python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", 720 "@@@STEP_LOG_LINE (a] python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", 721 "@@@STEP_LOG_LINE (a] python.inline@ print line@@@", 722 "@@@STEP_LOG_END (a] python.inline@@@" 723 ] 724 }, 725 { 726 "cmd": [ 727 "adb", 728 "disconnect" 729 ], 730 "cwd": "[START_DIR]/skia", 731 "env": { 732 "BUILDTYPE": "Release", 733 "CHROME_HEADLESS": "1", 734 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 735 "SKIA_OUT": "[START_DIR]/out" 736 }, 737 "infra_step": true, 738 "name": "disconnect (2)" 739 }, 740 { 741 "cmd": [ 742 "adb", 743 "kill-server" 744 ], 745 "cwd": "[START_DIR]/skia", 746 "env": { 747 "BUILDTYPE": "Release", 748 "CHROME_HEADLESS": "1", 749 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 750 "SKIA_OUT": "[START_DIR]/out" 751 }, 752 "infra_step": true, 753 "name": "kill adb server" 754 }, 755 { 756 "name": "$result", 757 "recipe_result": null, 758 "status_code": 0 759 } 760 ]