1 [ 2 { 3 "cmd": [ 4 "python", 5 "-u", 6 "[START_DIR]/skia/bin/fetch-gn" 7 ], 8 "cwd": "[START_DIR]/skia", 9 "env": { 10 "BUILDTYPE": "Debug", 11 "CHROME_HEADLESS": "1", 12 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 13 "SKIA_OUT": "[START_DIR]/out" 14 }, 15 "infra_step": true, 16 "name": "fetch-gn" 17 }, 18 { 19 "cmd": [ 20 "[START_DIR]/skia/bin/gn", 21 "gen", 22 "[START_DIR]/out/Debug", 23 "--args=extra_cflags=[\"-O1\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\"" 24 ], 25 "cwd": "[START_DIR]/skia", 26 "env": { 27 "BUILDTYPE": "Debug", 28 "CHROME_HEADLESS": "1", 29 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 30 "SKIA_OUT": "[START_DIR]/out" 31 }, 32 "name": "gn gen" 33 }, 34 { 35 "cmd": [ 36 "ninja", 37 "-k", 38 "0", 39 "-C", 40 "[START_DIR]/out/Debug" 41 ], 42 "cwd": "[START_DIR]/skia", 43 "env": { 44 "BUILDTYPE": "Debug", 45 "CHROME_HEADLESS": "1", 46 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 47 "SKIA_OUT": "[START_DIR]/out" 48 }, 49 "name": "ninja" 50 }, 51 { 52 "cmd": [ 53 "/opt/infra-android/tools/adb", 54 "push", 55 "file.txt", 56 "file.txt" 57 ], 58 "cwd": "[START_DIR]/skia", 59 "env": { 60 "BUILDTYPE": "Debug", 61 "CHROME_HEADLESS": "1", 62 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 63 "SKIA_OUT": "[START_DIR]/out" 64 }, 65 "infra_step": true, 66 "name": "push file.txt file.txt" 67 }, 68 { 69 "cmd": [ 70 "python", 71 "-u", 72 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 73 "--json-output", 74 "/path/to/tmp/json", 75 "rmtree", 76 "results_dir" 77 ], 78 "infra_step": true, 79 "name": "rmtree results_dir" 80 }, 81 { 82 "cmd": [ 83 "python", 84 "-u", 85 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 86 "--json-output", 87 "/path/to/tmp/json", 88 "ensure-directory", 89 "--mode", 90 "0777", 91 "results_dir" 92 ], 93 "infra_step": true, 94 "name": "makedirs results_dir" 95 }, 96 { 97 "cmd": [ 98 "/opt/infra-android/tools/adb", 99 "shell", 100 "rm", 101 "-rf", 102 "device_results_dir" 103 ], 104 "cwd": "[START_DIR]/skia", 105 "env": { 106 "BUILDTYPE": "Debug", 107 "CHROME_HEADLESS": "1", 108 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 109 "SKIA_OUT": "[START_DIR]/out" 110 }, 111 "infra_step": true, 112 "name": "rm device_results_dir" 113 }, 114 { 115 "cmd": [ 116 "/opt/infra-android/tools/adb", 117 "shell", 118 "mkdir", 119 "-p", 120 "device_results_dir" 121 ], 122 "cwd": "[START_DIR]/skia", 123 "env": { 124 "BUILDTYPE": "Debug", 125 "CHROME_HEADLESS": "1", 126 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 127 "SKIA_OUT": "[START_DIR]/out" 128 }, 129 "infra_step": true, 130 "name": "mkdir device_results_dir" 131 }, 132 { 133 "cmd": [ 134 "/opt/infra-android/tools/adb", 135 "shell", 136 "mkdir", 137 "-p", 138 "/sdcard/revenge_of_the_skiabot/resources" 139 ], 140 "cwd": "[START_DIR]/skia", 141 "env": { 142 "BUILDTYPE": "Debug", 143 "CHROME_HEADLESS": "1", 144 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 145 "SKIA_OUT": "[START_DIR]/out" 146 }, 147 "infra_step": true, 148 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources" 149 }, 150 { 151 "cmd": [ 152 "python", 153 "-u", 154 "\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(['/opt/infra-android/tools/adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 155 "[START_DIR]/skia/resources", 156 "/sdcard/revenge_of_the_skiabot/resources" 157 ], 158 "env": { 159 "BUILDTYPE": "Debug", 160 "CHROME_HEADLESS": "1", 161 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 162 "SKIA_OUT": "[START_DIR]/out" 163 }, 164 "infra_step": true, 165 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources", 166 "~followup_annotations": [ 167 "@@@STEP_LOG_LINE (a] python.inline@@@@", 168 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 169 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 170 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 171 "@@@STEP_LOG_LINE (a] python.inline@host = sys.argv[1]@@@", 172 "@@@STEP_LOG_LINE (a] python.inline@device = sys.argv[2]@@@", 173 "@@@STEP_LOG_LINE (a] python.inline@for d, _, fs in os.walk(host):@@@", 174 "@@@STEP_LOG_LINE (a] python.inline@ p = os.path.relpath(d, host)@@@", 175 "@@@STEP_LOG_LINE (a] python.inline@ if p != '.' and p.startswith('.'):@@@", 176 "@@@STEP_LOG_LINE (a] python.inline@ continue@@@", 177 "@@@STEP_LOG_LINE (a] python.inline@ for f in fs:@@@", 178 "@@@STEP_LOG_LINE (a] python.inline@ print os.path.join(p,f)@@@", 179 "@@@STEP_LOG_LINE (a] python.inline@ subprocess.check_call(['/opt/infra-android/tools/adb', 'push',@@@", 180 "@@@STEP_LOG_LINE (a] python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 181 "@@@STEP_LOG_LINE (a] python.inline@ os.path.join(device, p, f)])@@@", 182 "@@@STEP_LOG_END (a] python.inline@@@" 183 ] 184 }, 185 { 186 "cmd": [ 187 "python", 188 "-u", 189 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 190 "--json-output", 191 "/path/to/tmp/json", 192 "copy", 193 "[START_DIR]/skia/infra/bots/assets/skp/VERSION", 194 "/path/to/tmp/" 195 ], 196 "infra_step": true, 197 "name": "Get downloaded SKP VERSION" 198 }, 199 { 200 "cmd": [ 201 "python", 202 "-u", 203 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 204 "--json-output", 205 "/path/to/tmp/json", 206 "copy", 207 "42", 208 "[START_DIR]/tmp/SKP_VERSION" 209 ], 210 "infra_step": true, 211 "name": "write SKP_VERSION" 212 }, 213 { 214 "cmd": [ 215 "/opt/infra-android/tools/adb", 216 "shell", 217 "cat", 218 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 219 ], 220 "cwd": "[START_DIR]/skia", 221 "env": { 222 "BUILDTYPE": "Debug", 223 "CHROME_HEADLESS": "1", 224 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 225 "SKIA_OUT": "[START_DIR]/out" 226 }, 227 "infra_step": true, 228 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION", 229 "stdout": "/path/to/tmp/" 230 }, 231 { 232 "cmd": [ 233 "/opt/infra-android/tools/adb", 234 "shell", 235 "rm", 236 "-f", 237 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 238 ], 239 "cwd": "[START_DIR]/skia", 240 "env": { 241 "BUILDTYPE": "Debug", 242 "CHROME_HEADLESS": "1", 243 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 244 "SKIA_OUT": "[START_DIR]/out" 245 }, 246 "infra_step": true, 247 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION" 248 }, 249 { 250 "cmd": [ 251 "/opt/infra-android/tools/adb", 252 "shell", 253 "rm", 254 "-rf", 255 "/sdcard/revenge_of_the_skiabot/skps" 256 ], 257 "cwd": "[START_DIR]/skia", 258 "env": { 259 "BUILDTYPE": "Debug", 260 "CHROME_HEADLESS": "1", 261 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 262 "SKIA_OUT": "[START_DIR]/out" 263 }, 264 "infra_step": true, 265 "name": "rm /sdcard/revenge_of_the_skiabot/skps" 266 }, 267 { 268 "cmd": [ 269 "/opt/infra-android/tools/adb", 270 "shell", 271 "mkdir", 272 "-p", 273 "/sdcard/revenge_of_the_skiabot/skps" 274 ], 275 "cwd": "[START_DIR]/skia", 276 "env": { 277 "BUILDTYPE": "Debug", 278 "CHROME_HEADLESS": "1", 279 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 280 "SKIA_OUT": "[START_DIR]/out" 281 }, 282 "infra_step": true, 283 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps" 284 }, 285 { 286 "cmd": [ 287 "python", 288 "-u", 289 "\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(['/opt/infra-android/tools/adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 290 "[START_DIR]/skp", 291 "/sdcard/revenge_of_the_skiabot/skps" 292 ], 293 "env": { 294 "BUILDTYPE": "Debug", 295 "CHROME_HEADLESS": "1", 296 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 297 "SKIA_OUT": "[START_DIR]/out" 298 }, 299 "infra_step": true, 300 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps", 301 "~followup_annotations": [ 302 "@@@STEP_LOG_LINE (a] python.inline@@@@", 303 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 304 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 305 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 306 "@@@STEP_LOG_LINE (a] python.inline@host = sys.argv[1]@@@", 307 "@@@STEP_LOG_LINE (a] python.inline@device = sys.argv[2]@@@", 308 "@@@STEP_LOG_LINE (a] python.inline@for d, _, fs in os.walk(host):@@@", 309 "@@@STEP_LOG_LINE (a] python.inline@ p = os.path.relpath(d, host)@@@", 310 "@@@STEP_LOG_LINE (a] python.inline@ if p != '.' and p.startswith('.'):@@@", 311 "@@@STEP_LOG_LINE (a] python.inline@ continue@@@", 312 "@@@STEP_LOG_LINE (a] python.inline@ for f in fs:@@@", 313 "@@@STEP_LOG_LINE (a] python.inline@ print os.path.join(p,f)@@@", 314 "@@@STEP_LOG_LINE (a] python.inline@ subprocess.check_call(['/opt/infra-android/tools/adb', 'push',@@@", 315 "@@@STEP_LOG_LINE (a] python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 316 "@@@STEP_LOG_LINE (a] python.inline@ os.path.join(device, p, f)])@@@", 317 "@@@STEP_LOG_END (a] python.inline@@@" 318 ] 319 }, 320 { 321 "cmd": [ 322 "/opt/infra-android/tools/adb", 323 "push", 324 "[START_DIR]/tmp/SKP_VERSION", 325 "/sdcard/revenge_of_the_skiabot/SKP_VERSION" 326 ], 327 "cwd": "[START_DIR]/skia", 328 "env": { 329 "BUILDTYPE": "Debug", 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": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION" 336 }, 337 { 338 "cmd": [ 339 "python", 340 "-u", 341 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 342 "--json-output", 343 "/path/to/tmp/json", 344 "copy", 345 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION", 346 "/path/to/tmp/" 347 ], 348 "infra_step": true, 349 "name": "Get downloaded skimage VERSION" 350 }, 351 { 352 "cmd": [ 353 "python", 354 "-u", 355 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 356 "--json-output", 357 "/path/to/tmp/json", 358 "copy", 359 "42", 360 "[START_DIR]/tmp/SK_IMAGE_VERSION" 361 ], 362 "infra_step": true, 363 "name": "write SK_IMAGE_VERSION" 364 }, 365 { 366 "cmd": [ 367 "/opt/infra-android/tools/adb", 368 "shell", 369 "cat", 370 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 371 ], 372 "cwd": "[START_DIR]/skia", 373 "env": { 374 "BUILDTYPE": "Debug", 375 "CHROME_HEADLESS": "1", 376 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 377 "SKIA_OUT": "[START_DIR]/out" 378 }, 379 "infra_step": true, 380 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION", 381 "stdout": "/path/to/tmp/" 382 }, 383 { 384 "cmd": [ 385 "/opt/infra-android/tools/adb", 386 "shell", 387 "rm", 388 "-f", 389 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 390 ], 391 "cwd": "[START_DIR]/skia", 392 "env": { 393 "BUILDTYPE": "Debug", 394 "CHROME_HEADLESS": "1", 395 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 396 "SKIA_OUT": "[START_DIR]/out" 397 }, 398 "infra_step": true, 399 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 400 }, 401 { 402 "cmd": [ 403 "/opt/infra-android/tools/adb", 404 "shell", 405 "rm", 406 "-rf", 407 "/sdcard/revenge_of_the_skiabot/images" 408 ], 409 "cwd": "[START_DIR]/skia", 410 "env": { 411 "BUILDTYPE": "Debug", 412 "CHROME_HEADLESS": "1", 413 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 414 "SKIA_OUT": "[START_DIR]/out" 415 }, 416 "infra_step": true, 417 "name": "rm /sdcard/revenge_of_the_skiabot/images" 418 }, 419 { 420 "cmd": [ 421 "/opt/infra-android/tools/adb", 422 "shell", 423 "mkdir", 424 "-p", 425 "/sdcard/revenge_of_the_skiabot/images" 426 ], 427 "cwd": "[START_DIR]/skia", 428 "env": { 429 "BUILDTYPE": "Debug", 430 "CHROME_HEADLESS": "1", 431 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 432 "SKIA_OUT": "[START_DIR]/out" 433 }, 434 "infra_step": true, 435 "name": "mkdir /sdcard/revenge_of_the_skiabot/images" 436 }, 437 { 438 "cmd": [ 439 "python", 440 "-u", 441 "\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(['/opt/infra-android/tools/adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 442 "[START_DIR]/skimage", 443 "/sdcard/revenge_of_the_skiabot/images" 444 ], 445 "env": { 446 "BUILDTYPE": "Debug", 447 "CHROME_HEADLESS": "1", 448 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 449 "SKIA_OUT": "[START_DIR]/out" 450 }, 451 "infra_step": true, 452 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images", 453 "~followup_annotations": [ 454 "@@@STEP_LOG_LINE (a] python.inline@@@@", 455 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 456 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 457 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 458 "@@@STEP_LOG_LINE (a] python.inline@host = sys.argv[1]@@@", 459 "@@@STEP_LOG_LINE (a] python.inline@device = sys.argv[2]@@@", 460 "@@@STEP_LOG_LINE (a] python.inline@for d, _, fs in os.walk(host):@@@", 461 "@@@STEP_LOG_LINE (a] python.inline@ p = os.path.relpath(d, host)@@@", 462 "@@@STEP_LOG_LINE (a] python.inline@ if p != '.' and p.startswith('.'):@@@", 463 "@@@STEP_LOG_LINE (a] python.inline@ continue@@@", 464 "@@@STEP_LOG_LINE (a] python.inline@ for f in fs:@@@", 465 "@@@STEP_LOG_LINE (a] python.inline@ print os.path.join(p,f)@@@", 466 "@@@STEP_LOG_LINE (a] python.inline@ subprocess.check_call(['/opt/infra-android/tools/adb', 'push',@@@", 467 "@@@STEP_LOG_LINE (a] python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 468 "@@@STEP_LOG_LINE (a] python.inline@ os.path.join(device, p, f)])@@@", 469 "@@@STEP_LOG_END (a] python.inline@@@" 470 ] 471 }, 472 { 473 "cmd": [ 474 "/opt/infra-android/tools/adb", 475 "push", 476 "[START_DIR]/tmp/SK_IMAGE_VERSION", 477 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 478 ], 479 "cwd": "[START_DIR]/skia", 480 "env": { 481 "BUILDTYPE": "Debug", 482 "CHROME_HEADLESS": "1", 483 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 484 "SKIA_OUT": "[START_DIR]/out" 485 }, 486 "infra_step": true, 487 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION" 488 }, 489 { 490 "cmd": [ 491 "python", 492 "-u", 493 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 494 "--json-output", 495 "/path/to/tmp/json", 496 "copy", 497 "[START_DIR]/skia/infra/bots/assets/svg/VERSION", 498 "/path/to/tmp/" 499 ], 500 "infra_step": true, 501 "name": "Get downloaded SVG VERSION" 502 }, 503 { 504 "cmd": [ 505 "python", 506 "-u", 507 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 508 "--json-output", 509 "/path/to/tmp/json", 510 "copy", 511 "42", 512 "[START_DIR]/tmp/SVG_VERSION" 513 ], 514 "infra_step": true, 515 "name": "write SVG_VERSION" 516 }, 517 { 518 "cmd": [ 519 "/opt/infra-android/tools/adb", 520 "shell", 521 "cat", 522 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 523 ], 524 "cwd": "[START_DIR]/skia", 525 "env": { 526 "BUILDTYPE": "Debug", 527 "CHROME_HEADLESS": "1", 528 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 529 "SKIA_OUT": "[START_DIR]/out" 530 }, 531 "infra_step": true, 532 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION", 533 "stdout": "/path/to/tmp/" 534 }, 535 { 536 "cmd": [ 537 "/opt/infra-android/tools/adb", 538 "shell", 539 "rm", 540 "-f", 541 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 542 ], 543 "cwd": "[START_DIR]/skia", 544 "env": { 545 "BUILDTYPE": "Debug", 546 "CHROME_HEADLESS": "1", 547 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 548 "SKIA_OUT": "[START_DIR]/out" 549 }, 550 "infra_step": true, 551 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION" 552 }, 553 { 554 "cmd": [ 555 "/opt/infra-android/tools/adb", 556 "shell", 557 "rm", 558 "-rf", 559 "/sdcard/revenge_of_the_skiabot/svgs" 560 ], 561 "cwd": "[START_DIR]/skia", 562 "env": { 563 "BUILDTYPE": "Debug", 564 "CHROME_HEADLESS": "1", 565 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 566 "SKIA_OUT": "[START_DIR]/out" 567 }, 568 "infra_step": true, 569 "name": "rm /sdcard/revenge_of_the_skiabot/svgs" 570 }, 571 { 572 "cmd": [ 573 "/opt/infra-android/tools/adb", 574 "shell", 575 "mkdir", 576 "-p", 577 "/sdcard/revenge_of_the_skiabot/svgs" 578 ], 579 "cwd": "[START_DIR]/skia", 580 "env": { 581 "BUILDTYPE": "Debug", 582 "CHROME_HEADLESS": "1", 583 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 584 "SKIA_OUT": "[START_DIR]/out" 585 }, 586 "infra_step": true, 587 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs" 588 }, 589 { 590 "cmd": [ 591 "python", 592 "-u", 593 "\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(['/opt/infra-android/tools/adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n", 594 "[START_DIR]/svg", 595 "/sdcard/revenge_of_the_skiabot/svgs" 596 ], 597 "env": { 598 "BUILDTYPE": "Debug", 599 "CHROME_HEADLESS": "1", 600 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 601 "SKIA_OUT": "[START_DIR]/out" 602 }, 603 "infra_step": true, 604 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs", 605 "~followup_annotations": [ 606 "@@@STEP_LOG_LINE (a] python.inline@@@@", 607 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 608 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 609 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 610 "@@@STEP_LOG_LINE (a] python.inline@host = sys.argv[1]@@@", 611 "@@@STEP_LOG_LINE (a] python.inline@device = sys.argv[2]@@@", 612 "@@@STEP_LOG_LINE (a] python.inline@for d, _, fs in os.walk(host):@@@", 613 "@@@STEP_LOG_LINE (a] python.inline@ p = os.path.relpath(d, host)@@@", 614 "@@@STEP_LOG_LINE (a] python.inline@ if p != '.' and p.startswith('.'):@@@", 615 "@@@STEP_LOG_LINE (a] python.inline@ continue@@@", 616 "@@@STEP_LOG_LINE (a] python.inline@ for f in fs:@@@", 617 "@@@STEP_LOG_LINE (a] python.inline@ print os.path.join(p,f)@@@", 618 "@@@STEP_LOG_LINE (a] python.inline@ subprocess.check_call(['/opt/infra-android/tools/adb', 'push',@@@", 619 "@@@STEP_LOG_LINE (a] python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@", 620 "@@@STEP_LOG_LINE (a] python.inline@ os.path.join(device, p, f)])@@@", 621 "@@@STEP_LOG_END (a] python.inline@@@" 622 ] 623 }, 624 { 625 "cmd": [ 626 "/opt/infra-android/tools/adb", 627 "push", 628 "[START_DIR]/tmp/SVG_VERSION", 629 "/sdcard/revenge_of_the_skiabot/SVG_VERSION" 630 ], 631 "cwd": "[START_DIR]/skia", 632 "env": { 633 "BUILDTYPE": "Debug", 634 "CHROME_HEADLESS": "1", 635 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 636 "SKIA_OUT": "[START_DIR]/out" 637 }, 638 "infra_step": true, 639 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION" 640 }, 641 { 642 "cmd": [ 643 "python", 644 "-u", 645 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print 'CPU %d online already %d' % (cpu, value)\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", 646 "/opt/infra-android/tools/adb", 647 "0", 648 "1" 649 ], 650 "env": { 651 "BUILDTYPE": "Debug", 652 "CHROME_HEADLESS": "1", 653 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 654 "SKIA_OUT": "[START_DIR]/out" 655 }, 656 "infra_step": true, 657 "name": "Enabling CPU 0", 658 "timeout": 30, 659 "~followup_annotations": [ 660 "@@@STEP_LOG_LINE (a] python.inline@@@@", 661 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 662 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 663 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 664 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 665 "@@@STEP_LOG_LINE (a] python.inline@ADB = sys.argv[1]@@@", 666 "@@@STEP_LOG_LINE (a] python.inline@cpu = int(sys.argv[2])@@@", 667 "@@@STEP_LOG_LINE (a] python.inline@value = int(sys.argv[3])@@@", 668 "@@@STEP_LOG_LINE (a] python.inline@@@@", 669 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 670 "@@@STEP_LOG_LINE (a] python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 671 "@@@STEP_LOG_LINE (a] python.inline@print log@@@", 672 "@@@STEP_LOG_LINE (a] python.inline@if 'cannot' in log:@@@", 673 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('adb root failed')@@@", 674 "@@@STEP_LOG_LINE (a] python.inline@@@@", 675 "@@@STEP_LOG_LINE (a] python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", 676 "@@@STEP_LOG_LINE (a] python.inline@# So, check the value before trying to write it.@@@", 677 "@@@STEP_LOG_LINE (a] python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 678 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 679 "@@@STEP_LOG_LINE (a] python.inline@if prior_status == str(value):@@@", 680 "@@@STEP_LOG_LINE (a] python.inline@ print 'CPU %d online already %d' % (cpu, value)@@@", 681 "@@@STEP_LOG_LINE (a] python.inline@ sys.exit()@@@", 682 "@@@STEP_LOG_LINE (a] python.inline@@@@", 683 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", 684 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", 685 "@@@STEP_LOG_LINE (a] python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 686 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 687 "@@@STEP_LOG_LINE (a] python.inline@if actual_status != str(value):@@@", 688 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", 689 "@@@STEP_LOG_LINE (a] python.inline@ % (actual_status, value))@@@", 690 "@@@STEP_LOG_END (a] python.inline@@@" 691 ] 692 }, 693 { 694 "cmd": [ 695 "python", 696 "-u", 697 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print 'CPU %d online already %d' % (cpu, value)\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", 698 "/opt/infra-android/tools/adb", 699 "1", 700 "1" 701 ], 702 "env": { 703 "BUILDTYPE": "Debug", 704 "CHROME_HEADLESS": "1", 705 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 706 "SKIA_OUT": "[START_DIR]/out" 707 }, 708 "infra_step": true, 709 "name": "Enabling CPU 1", 710 "timeout": 30, 711 "~followup_annotations": [ 712 "@@@STEP_LOG_LINE (a] python.inline@@@@", 713 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 714 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 715 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 716 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 717 "@@@STEP_LOG_LINE (a] python.inline@ADB = sys.argv[1]@@@", 718 "@@@STEP_LOG_LINE (a] python.inline@cpu = int(sys.argv[2])@@@", 719 "@@@STEP_LOG_LINE (a] python.inline@value = int(sys.argv[3])@@@", 720 "@@@STEP_LOG_LINE (a] python.inline@@@@", 721 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 722 "@@@STEP_LOG_LINE (a] python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 723 "@@@STEP_LOG_LINE (a] python.inline@print log@@@", 724 "@@@STEP_LOG_LINE (a] python.inline@if 'cannot' in log:@@@", 725 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('adb root failed')@@@", 726 "@@@STEP_LOG_LINE (a] python.inline@@@@", 727 "@@@STEP_LOG_LINE (a] python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", 728 "@@@STEP_LOG_LINE (a] python.inline@# So, check the value before trying to write it.@@@", 729 "@@@STEP_LOG_LINE (a] python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 730 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 731 "@@@STEP_LOG_LINE (a] python.inline@if prior_status == str(value):@@@", 732 "@@@STEP_LOG_LINE (a] python.inline@ print 'CPU %d online already %d' % (cpu, value)@@@", 733 "@@@STEP_LOG_LINE (a] python.inline@ sys.exit()@@@", 734 "@@@STEP_LOG_LINE (a] python.inline@@@@", 735 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", 736 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", 737 "@@@STEP_LOG_LINE (a] python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 738 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 739 "@@@STEP_LOG_LINE (a] python.inline@if actual_status != str(value):@@@", 740 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", 741 "@@@STEP_LOG_LINE (a] python.inline@ % (actual_status, value))@@@", 742 "@@@STEP_LOG_END (a] python.inline@@@" 743 ] 744 }, 745 { 746 "cmd": [ 747 "python", 748 "-u", 749 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print 'CPU %d online already %d' % (cpu, value)\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", 750 "/opt/infra-android/tools/adb", 751 "2", 752 "1" 753 ], 754 "env": { 755 "BUILDTYPE": "Debug", 756 "CHROME_HEADLESS": "1", 757 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 758 "SKIA_OUT": "[START_DIR]/out" 759 }, 760 "infra_step": true, 761 "name": "Enabling CPU 2", 762 "timeout": 30, 763 "~followup_annotations": [ 764 "@@@STEP_LOG_LINE (a] python.inline@@@@", 765 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 766 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 767 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 768 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 769 "@@@STEP_LOG_LINE (a] python.inline@ADB = sys.argv[1]@@@", 770 "@@@STEP_LOG_LINE (a] python.inline@cpu = int(sys.argv[2])@@@", 771 "@@@STEP_LOG_LINE (a] python.inline@value = int(sys.argv[3])@@@", 772 "@@@STEP_LOG_LINE (a] python.inline@@@@", 773 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 774 "@@@STEP_LOG_LINE (a] python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 775 "@@@STEP_LOG_LINE (a] python.inline@print log@@@", 776 "@@@STEP_LOG_LINE (a] python.inline@if 'cannot' in log:@@@", 777 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('adb root failed')@@@", 778 "@@@STEP_LOG_LINE (a] python.inline@@@@", 779 "@@@STEP_LOG_LINE (a] python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", 780 "@@@STEP_LOG_LINE (a] python.inline@# So, check the value before trying to write it.@@@", 781 "@@@STEP_LOG_LINE (a] python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 782 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 783 "@@@STEP_LOG_LINE (a] python.inline@if prior_status == str(value):@@@", 784 "@@@STEP_LOG_LINE (a] python.inline@ print 'CPU %d online already %d' % (cpu, value)@@@", 785 "@@@STEP_LOG_LINE (a] python.inline@ sys.exit()@@@", 786 "@@@STEP_LOG_LINE (a] python.inline@@@@", 787 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", 788 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", 789 "@@@STEP_LOG_LINE (a] python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 790 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 791 "@@@STEP_LOG_LINE (a] python.inline@if actual_status != str(value):@@@", 792 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", 793 "@@@STEP_LOG_LINE (a] python.inline@ % (actual_status, value))@@@", 794 "@@@STEP_LOG_END (a] python.inline@@@" 795 ] 796 }, 797 { 798 "cmd": [ 799 "python", 800 "-u", 801 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\nvalue = int(sys.argv[3])\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\n# If we try to echo 1 to an already online cpu, adb returns exit code 1.\n# So, check the value before trying to write it.\nprior_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif prior_status == str(value):\n print 'CPU %d online already %d' % (cpu, value)\n sys.exit()\n\nsubprocess.check_output([ADB, 'shell', 'echo %s > '\n '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])\nactual_status = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()\nif actual_status != str(value):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_status, value))\n", 802 "/opt/infra-android/tools/adb", 803 "3", 804 "1" 805 ], 806 "env": { 807 "BUILDTYPE": "Debug", 808 "CHROME_HEADLESS": "1", 809 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 810 "SKIA_OUT": "[START_DIR]/out" 811 }, 812 "infra_step": true, 813 "name": "Enabling CPU 3", 814 "timeout": 30, 815 "~followup_annotations": [ 816 "@@@STEP_LOG_LINE (a] python.inline@@@@", 817 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 818 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 819 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 820 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 821 "@@@STEP_LOG_LINE (a] python.inline@ADB = sys.argv[1]@@@", 822 "@@@STEP_LOG_LINE (a] python.inline@cpu = int(sys.argv[2])@@@", 823 "@@@STEP_LOG_LINE (a] python.inline@value = int(sys.argv[3])@@@", 824 "@@@STEP_LOG_LINE (a] python.inline@@@@", 825 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 826 "@@@STEP_LOG_LINE (a] python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 827 "@@@STEP_LOG_LINE (a] python.inline@print log@@@", 828 "@@@STEP_LOG_LINE (a] python.inline@if 'cannot' in log:@@@", 829 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('adb root failed')@@@", 830 "@@@STEP_LOG_LINE (a] python.inline@@@@", 831 "@@@STEP_LOG_LINE (a] python.inline@# If we try to echo 1 to an already online cpu, adb returns exit code 1.@@@", 832 "@@@STEP_LOG_LINE (a] python.inline@# So, check the value before trying to write it.@@@", 833 "@@@STEP_LOG_LINE (a] python.inline@prior_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 834 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 835 "@@@STEP_LOG_LINE (a] python.inline@if prior_status == str(value):@@@", 836 "@@@STEP_LOG_LINE (a] python.inline@ print 'CPU %d online already %d' % (cpu, value)@@@", 837 "@@@STEP_LOG_LINE (a] python.inline@ sys.exit()@@@", 838 "@@@STEP_LOG_LINE (a] python.inline@@@@", 839 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_output([ADB, 'shell', 'echo %s > '@@@", 840 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % (value, cpu)])@@@", 841 "@@@STEP_LOG_LINE (a] python.inline@actual_status = subprocess.check_output([ADB, 'shell', 'cat '@@@", 842 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/online' % cpu]).strip()@@@", 843 "@@@STEP_LOG_LINE (a] python.inline@if actual_status != str(value):@@@", 844 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@", 845 "@@@STEP_LOG_LINE (a] python.inline@ % (actual_status, value))@@@", 846 "@@@STEP_LOG_END (a] python.inline@@@" 847 ] 848 }, 849 { 850 "cmd": [ 851 "python", 852 "-u", 853 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", 854 "/opt/infra-android/tools/adb", 855 "4", 856 "ondemand" 857 ], 858 "env": { 859 "BUILDTYPE": "Debug", 860 "CHROME_HEADLESS": "1", 861 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 862 "SKIA_OUT": "[START_DIR]/out" 863 }, 864 "infra_step": true, 865 "name": "Set CPU 4's governor to ondemand", 866 "timeout": 30, 867 "~followup_annotations": [ 868 "@@@STEP_LOG_LINE (a] python.inline@@@@", 869 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 870 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 871 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 872 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 873 "@@@STEP_LOG_LINE (a] python.inline@ADB = sys.argv[1]@@@", 874 "@@@STEP_LOG_LINE (a] python.inline@cpu = int(sys.argv[2])@@@", 875 "@@@STEP_LOG_LINE (a] python.inline@gov = sys.argv[3]@@@", 876 "@@@STEP_LOG_LINE (a] python.inline@@@@", 877 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 878 "@@@STEP_LOG_LINE (a] python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 879 "@@@STEP_LOG_LINE (a] python.inline@print log@@@", 880 "@@@STEP_LOG_LINE (a] python.inline@if 'cannot' in log:@@@", 881 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('adb root failed')@@@", 882 "@@@STEP_LOG_LINE (a] python.inline@@@@", 883 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", 884 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", 885 "@@@STEP_LOG_LINE (a] python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", 886 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", 887 "@@@STEP_LOG_LINE (a] python.inline@if actual_gov != gov:@@@", 888 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", 889 "@@@STEP_LOG_LINE (a] python.inline@ % (actual_gov, gov))@@@", 890 "@@@STEP_LOG_END (a] python.inline@@@" 891 ] 892 }, 893 { 894 "cmd": [ 895 "python", 896 "-u", 897 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\ncpu = int(sys.argv[2])\ngov = sys.argv[3]\n\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nprint log\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nsubprocess.check_output([ADB, 'shell', 'echo \"%s\" > '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])\nactual_gov = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()\nif actual_gov != gov:\n raise Exception('(actual, expected) (%s, %s)'\n % (actual_gov, gov))\n", 898 "/opt/infra-android/tools/adb", 899 "0", 900 "ondemand" 901 ], 902 "env": { 903 "BUILDTYPE": "Debug", 904 "CHROME_HEADLESS": "1", 905 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 906 "SKIA_OUT": "[START_DIR]/out" 907 }, 908 "infra_step": true, 909 "name": "Set CPU 0's governor to ondemand", 910 "timeout": 30, 911 "~followup_annotations": [ 912 "@@@STEP_LOG_LINE (a] python.inline@@@@", 913 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 914 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 915 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 916 "@@@STEP_LOG_LINE (a] python.inline@import time@@@", 917 "@@@STEP_LOG_LINE (a] python.inline@ADB = sys.argv[1]@@@", 918 "@@@STEP_LOG_LINE (a] python.inline@cpu = int(sys.argv[2])@@@", 919 "@@@STEP_LOG_LINE (a] python.inline@gov = sys.argv[3]@@@", 920 "@@@STEP_LOG_LINE (a] python.inline@@@@", 921 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output([ADB, 'root'])@@@", 922 "@@@STEP_LOG_LINE (a] python.inline@# check for message like 'adbd cannot run as root in production builds'@@@", 923 "@@@STEP_LOG_LINE (a] python.inline@print log@@@", 924 "@@@STEP_LOG_LINE (a] python.inline@if 'cannot' in log:@@@", 925 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('adb root failed')@@@", 926 "@@@STEP_LOG_LINE (a] python.inline@@@@", 927 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_output([ADB, 'shell', 'echo \"%s\" > '@@@", 928 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % (gov, cpu)])@@@", 929 "@@@STEP_LOG_LINE (a] python.inline@actual_gov = subprocess.check_output([ADB, 'shell', 'cat '@@@", 930 "@@@STEP_LOG_LINE (a] python.inline@ '/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor' % cpu]).strip()@@@", 931 "@@@STEP_LOG_LINE (a] python.inline@if actual_gov != gov:@@@", 932 "@@@STEP_LOG_LINE (a] python.inline@ raise Exception('(actual, expected) (%s, %s)'@@@", 933 "@@@STEP_LOG_LINE (a] python.inline@ % (actual_gov, gov))@@@", 934 "@@@STEP_LOG_END (a] python.inline@@@" 935 ] 936 }, 937 { 938 "cmd": [ 939 "/opt/infra-android/tools/adb", 940 "push", 941 "[START_DIR]/out/Debug/dm", 942 "/data/local/tmp/" 943 ], 944 "cwd": "[START_DIR]/skia", 945 "env": { 946 "BUILDTYPE": "Debug", 947 "CHROME_HEADLESS": "1", 948 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 949 "SKIA_OUT": "[START_DIR]/out" 950 }, 951 "infra_step": true, 952 "name": "push dm" 953 }, 954 { 955 "cmd": [ 956 "python", 957 "-u", 958 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 959 "--json-output", 960 "/path/to/tmp/json", 961 "copy", 962 "set -x; /data/local/tmp/dm --some-flag; echo $? >/data/local/tmp/rc", 963 "[START_DIR]/tmp/dm.sh" 964 ], 965 "infra_step": true, 966 "name": "write dm.sh" 967 }, 968 { 969 "cmd": [ 970 "/opt/infra-android/tools/adb", 971 "push", 972 "[START_DIR]/tmp/dm.sh", 973 "/data/local/tmp/" 974 ], 975 "cwd": "[START_DIR]/skia", 976 "env": { 977 "BUILDTYPE": "Debug", 978 "CHROME_HEADLESS": "1", 979 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 980 "SKIA_OUT": "[START_DIR]/out" 981 }, 982 "infra_step": true, 983 "name": "push dm.sh" 984 }, 985 { 986 "cmd": [ 987 "/opt/infra-android/tools/adb", 988 "logcat", 989 "-c" 990 ], 991 "cwd": "[START_DIR]/skia", 992 "env": { 993 "BUILDTYPE": "Debug", 994 "CHROME_HEADLESS": "1", 995 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 996 "SKIA_OUT": "[START_DIR]/out" 997 }, 998 "infra_step": true, 999 "name": "clear log" 1000 }, 1001 { 1002 "cmd": [ 1003 "python", 1004 "-u", 1005 "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/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", 1006 "/data/local/tmp/", 1007 "dm.sh" 1008 ], 1009 "name": "dm", 1010 "~followup_annotations": [ 1011 "@@@STEP_LOG_LINE (a] python.inline@@@@", 1012 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 1013 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 1014 "@@@STEP_LOG_LINE (a] python.inline@bin_dir = sys.argv[1]@@@", 1015 "@@@STEP_LOG_LINE (a] python.inline@sh = sys.argv[2]@@@", 1016 "@@@STEP_LOG_LINE (a] python.inline@subprocess.check_call(['/opt/infra-android/tools/adb', 'shell', 'sh', bin_dir + sh])@@@", 1017 "@@@STEP_LOG_LINE (a] python.inline@try:@@@", 1018 "@@@STEP_LOG_LINE (a] python.inline@ sys.exit(int(subprocess.check_output(['/opt/infra-android/tools/adb', 'shell', 'cat',@@@", 1019 "@@@STEP_LOG_LINE (a] python.inline@ bin_dir + 'rc'])))@@@", 1020 "@@@STEP_LOG_LINE (a] python.inline@except ValueError:@@@", 1021 "@@@STEP_LOG_LINE (a] python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@", 1022 "@@@STEP_LOG_LINE (a] python.inline@ sys.exit(1)@@@", 1023 "@@@STEP_LOG_END (a] python.inline@@@" 1024 ] 1025 }, 1026 { 1027 "cmd": [ 1028 "/opt/infra-android/tools/adb", 1029 "pull", 1030 "/sdcard/revenge_of_the_skiabot/dm_out", 1031 "[CUSTOM_[SWARM_OUT_DIR]]/dm" 1032 ], 1033 "cwd": "[START_DIR]/skia", 1034 "env": { 1035 "BUILDTYPE": "Debug", 1036 "CHROME_HEADLESS": "1", 1037 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 1038 "SKIA_OUT": "[START_DIR]/out" 1039 }, 1040 "infra_step": true, 1041 "name": "pull /sdcard/revenge_of_the_skiabot/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm" 1042 }, 1043 { 1044 "cmd": [ 1045 "python", 1046 "-u", 1047 "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/opt/infra-android/tools/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", 1048 "[START_DIR]/out/Debug" 1049 ], 1050 "env": { 1051 "BUILDTYPE": "Debug", 1052 "CHROME_HEADLESS": "1", 1053 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 1054 "SKIA_OUT": "[START_DIR]/out" 1055 }, 1056 "infra_step": true, 1057 "name": "dump log", 1058 "timeout": 300, 1059 "~followup_annotations": [ 1060 "@@@STEP_LOG_LINE (a] python.inline@@@@", 1061 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 1062 "@@@STEP_LOG_LINE (a] python.inline@import subprocess@@@", 1063 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 1064 "@@@STEP_LOG_LINE (a] python.inline@out = sys.argv[1]@@@", 1065 "@@@STEP_LOG_LINE (a] python.inline@log = subprocess.check_output(['/opt/infra-android/tools/adb', 'logcat', '-d'])@@@", 1066 "@@@STEP_LOG_LINE (a] python.inline@for line in log.split('\\n'):@@@", 1067 "@@@STEP_LOG_LINE (a] python.inline@ tokens = line.split()@@@", 1068 "@@@STEP_LOG_LINE (a] python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@", 1069 "@@@STEP_LOG_LINE (a] python.inline@ addr, path = tokens[-2:]@@@", 1070 "@@@STEP_LOG_LINE (a] python.inline@ local = os.path.join(out, os.path.basename(path))@@@", 1071 "@@@STEP_LOG_LINE (a] python.inline@ if os.path.exists(local):@@@", 1072 "@@@STEP_LOG_LINE (a] python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@", 1073 "@@@STEP_LOG_LINE (a] python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@", 1074 "@@@STEP_LOG_LINE (a] python.inline@ print line@@@", 1075 "@@@STEP_LOG_END (a] python.inline@@@" 1076 ] 1077 }, 1078 { 1079 "cmd": [ 1080 "/opt/infra-android/tools/adb", 1081 "kill-server" 1082 ], 1083 "cwd": "[START_DIR]/skia", 1084 "env": { 1085 "BUILDTYPE": "Debug", 1086 "CHROME_HEADLESS": "1", 1087 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 1088 "SKIA_OUT": "[START_DIR]/out" 1089 }, 1090 "infra_step": true, 1091 "name": "kill adb server" 1092 }, 1093 { 1094 "name": "$result", 1095 "recipe_result": null, 1096 "status_code": 0 1097 } 1098 ]