1[ 2 { 3 "cmd": [ 4 "vpython3", 5 "-u", 6 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 7 "--json-output", 8 "/path/to/tmp/json", 9 "ensure-directory", 10 "--mode", 11 "0o777", 12 "[START_DIR]/tmp" 13 ], 14 "infra_step": true, 15 "name": "makedirs tmp_dir" 16 }, 17 { 18 "cmd": [ 19 "python3", 20 "RECIPE_MODULE[skia::vars]/resources/get_env_var.py", 21 "SWARMING_BOT_ID" 22 ], 23 "name": "get swarming bot id" 24 }, 25 { 26 "cmd": [ 27 "/opt/infra-android/tools/adb", 28 "shell", 29 "mkdir", 30 "-p", 31 "/sdcard/revenge_of_the_skiabot/resources" 32 ], 33 "cwd": "[START_DIR]/skia", 34 "env": { 35 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 36 "CHROME_HEADLESS": "1", 37 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 38 }, 39 "infra_step": true, 40 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources" 41 }, 42 { 43 "cmd": [ 44 "python3", 45 "RECIPE_MODULE[skia::flavor]/resources/set_cpu_scaling_governor.py", 46 "/opt/infra-android/tools/adb", 47 "0", 48 "hotplug" 49 ], 50 "env": { 51 "CHROME_HEADLESS": "1", 52 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 53 }, 54 "infra_step": true, 55 "name": "Set CPU 0's governor to hotplug", 56 "timeout": 30 57 }, 58 { 59 "cmd": [ 60 "/opt/infra-android/tools/adb", 61 "push", 62 "[START_DIR]/build/dm", 63 "/data/local/tmp/" 64 ], 65 "cwd": "[START_DIR]/skia", 66 "env": { 67 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 68 "CHROME_HEADLESS": "1", 69 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 70 }, 71 "infra_step": true, 72 "name": "push dm" 73 }, 74 { 75 "cmd": [ 76 "vpython3", 77 "-u", 78 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 79 "--json-output", 80 "/path/to/tmp/json", 81 "glob", 82 "[START_DIR]/skia/resources", 83 "*" 84 ], 85 "infra_step": true, 86 "name": "ls [START_DIR]/skia/resources/*", 87 "~followup_annotations": [ 88 "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/bar.jpg@@@", 89 "@@@STEP_LOG_LINE@glob@[START_DIR]/skia/resources/foo.png@@@", 90 "@@@STEP_LOG_END@glob@@@" 91 ] 92 }, 93 { 94 "cmd": [ 95 "/opt/infra-android/tools/adb", 96 "push", 97 "[START_DIR]/skia/resources/bar.jpg", 98 "[START_DIR]/skia/resources/foo.png", 99 "/sdcard/revenge_of_the_skiabot/resources" 100 ], 101 "cwd": "[START_DIR]/skia", 102 "env": { 103 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 104 "CHROME_HEADLESS": "1", 105 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 106 }, 107 "infra_step": true, 108 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources" 109 }, 110 { 111 "cmd": [ 112 "vpython3", 113 "-u", 114 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 115 "--json-output", 116 "/path/to/tmp/json", 117 "copy", 118 "[START_DIR]/skia/infra/bots/assets/lottie-samples/VERSION", 119 "/path/to/tmp/" 120 ], 121 "infra_step": true, 122 "name": "Get lottie-samples VERSION", 123 "~followup_annotations": [ 124 "@@@STEP_LOG_LINE@VERSION@42@@@", 125 "@@@STEP_LOG_END@VERSION@@@" 126 ] 127 }, 128 { 129 "cmd": [ 130 "vpython3", 131 "-u", 132 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 133 "--json-output", 134 "/path/to/tmp/json", 135 "copy", 136 "42", 137 "[START_DIR]/tmp/LOTTIE_VERSION" 138 ], 139 "infra_step": true, 140 "name": "write LOTTIE_VERSION", 141 "~followup_annotations": [ 142 "@@@STEP_LOG_LINE@LOTTIE_VERSION@42@@@", 143 "@@@STEP_LOG_END@LOTTIE_VERSION@@@" 144 ] 145 }, 146 { 147 "cmd": [ 148 "/opt/infra-android/tools/adb", 149 "shell", 150 "test", 151 "-f", 152 "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 153 ], 154 "cwd": "[START_DIR]/skia", 155 "env": { 156 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 157 "CHROME_HEADLESS": "1", 158 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 159 }, 160 "infra_step": true, 161 "name": "check if /sdcard/revenge_of_the_skiabot/LOTTIE_VERSION exists" 162 }, 163 { 164 "cmd": [ 165 "/opt/infra-android/tools/adb", 166 "shell", 167 "cat", 168 "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 169 ], 170 "cwd": "[START_DIR]/skia", 171 "env": { 172 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 173 "CHROME_HEADLESS": "1", 174 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 175 }, 176 "infra_step": true, 177 "name": "read /sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 178 }, 179 { 180 "cmd": [ 181 "python3", 182 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 183 "/opt/infra-android/tools/adb", 184 "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 185 ], 186 "env": { 187 "CHROME_HEADLESS": "1", 188 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 189 }, 190 "infra_step": true, 191 "name": "rm /sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 192 }, 193 { 194 "cmd": [ 195 "python3", 196 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 197 "/opt/infra-android/tools/adb", 198 "/sdcard/revenge_of_the_skiabot/lotties" 199 ], 200 "env": { 201 "CHROME_HEADLESS": "1", 202 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 203 }, 204 "infra_step": true, 205 "name": "rm /sdcard/revenge_of_the_skiabot/lotties" 206 }, 207 { 208 "cmd": [ 209 "/opt/infra-android/tools/adb", 210 "shell", 211 "mkdir", 212 "-p", 213 "/sdcard/revenge_of_the_skiabot/lotties" 214 ], 215 "cwd": "[START_DIR]/skia", 216 "env": { 217 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 218 "CHROME_HEADLESS": "1", 219 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 220 }, 221 "infra_step": true, 222 "name": "mkdir /sdcard/revenge_of_the_skiabot/lotties" 223 }, 224 { 225 "cmd": [ 226 "vpython3", 227 "-u", 228 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 229 "--json-output", 230 "/path/to/tmp/json", 231 "glob", 232 "[START_DIR]/lottie-samples", 233 "*" 234 ], 235 "infra_step": true, 236 "name": "ls [START_DIR]/lottie-samples/*", 237 "~followup_annotations": [ 238 "@@@STEP_LOG_LINE@glob@[START_DIR]/lottie-samples/bar.jpg@@@", 239 "@@@STEP_LOG_LINE@glob@[START_DIR]/lottie-samples/foo.png@@@", 240 "@@@STEP_LOG_END@glob@@@" 241 ] 242 }, 243 { 244 "cmd": [ 245 "/opt/infra-android/tools/adb", 246 "push", 247 "[START_DIR]/lottie-samples/bar.jpg", 248 "[START_DIR]/lottie-samples/foo.png", 249 "/sdcard/revenge_of_the_skiabot/lotties" 250 ], 251 "cwd": "[START_DIR]/skia", 252 "env": { 253 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 254 "CHROME_HEADLESS": "1", 255 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 256 }, 257 "infra_step": true, 258 "name": "push [START_DIR]/lottie-samples/* /sdcard/revenge_of_the_skiabot/lotties" 259 }, 260 { 261 "cmd": [ 262 "/opt/infra-android/tools/adb", 263 "push", 264 "[START_DIR]/tmp/LOTTIE_VERSION", 265 "/sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 266 ], 267 "cwd": "[START_DIR]/skia", 268 "env": { 269 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 270 "CHROME_HEADLESS": "1", 271 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 272 }, 273 "infra_step": true, 274 "name": "push [START_DIR]/tmp/LOTTIE_VERSION /sdcard/revenge_of_the_skiabot/LOTTIE_VERSION" 275 }, 276 { 277 "cmd": [ 278 "python3", 279 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 280 "/opt/infra-android/tools/adb", 281 "/sdcard/revenge_of_the_skiabot/dm_out" 282 ], 283 "env": { 284 "CHROME_HEADLESS": "1", 285 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 286 }, 287 "infra_step": true, 288 "name": "rm /sdcard/revenge_of_the_skiabot/dm_out" 289 }, 290 { 291 "cmd": [ 292 "/opt/infra-android/tools/adb", 293 "shell", 294 "mkdir", 295 "-p", 296 "/sdcard/revenge_of_the_skiabot/dm_out" 297 ], 298 "cwd": "[START_DIR]/skia", 299 "env": { 300 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 301 "CHROME_HEADLESS": "1", 302 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 303 }, 304 "infra_step": true, 305 "name": "mkdir /sdcard/revenge_of_the_skiabot/dm_out" 306 }, 307 { 308 "cmd": [ 309 "python3", 310 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 311 "/opt/infra-android/tools/adb", 312 "/sdcard/revenge_of_the_skiabot/lotties_with_assets" 313 ], 314 "env": { 315 "CHROME_HEADLESS": "1", 316 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 317 }, 318 "infra_step": true, 319 "name": "rm /sdcard/revenge_of_the_skiabot/lotties_with_assets" 320 }, 321 { 322 "cmd": [ 323 "/opt/infra-android/tools/adb", 324 "shell", 325 "mkdir", 326 "-p", 327 "/sdcard/revenge_of_the_skiabot/lotties_with_assets" 328 ], 329 "cwd": "[START_DIR]/skia", 330 "env": { 331 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 332 "CHROME_HEADLESS": "1", 333 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 334 }, 335 "infra_step": true, 336 "name": "mkdir /sdcard/revenge_of_the_skiabot/lotties_with_assets" 337 }, 338 { 339 "cmd": [ 340 "vpython3", 341 "-u", 342 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 343 "--json-output", 344 "/path/to/tmp/json", 345 "copytree", 346 "[START_DIR]/lotties_with_assets", 347 "[CLEANUP]/lwa_tmp_1/nosymlinks" 348 ], 349 "infra_step": true, 350 "name": "Copying files on host to remove symlinks" 351 }, 352 { 353 "cmd": [ 354 "vpython3", 355 "-u", 356 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 357 "--json-output", 358 "/path/to/tmp/json", 359 "glob", 360 "[CLEANUP]/lwa_tmp_1/nosymlinks", 361 "*" 362 ], 363 "infra_step": true, 364 "name": "ls [CLEANUP]/lwa_tmp_1/nosymlinks/*", 365 "~followup_annotations": [ 366 "@@@STEP_LOG_LINE@glob@[CLEANUP]/lwa_tmp_1/nosymlinks/bar.jpg@@@", 367 "@@@STEP_LOG_LINE@glob@[CLEANUP]/lwa_tmp_1/nosymlinks/foo.png@@@", 368 "@@@STEP_LOG_END@glob@@@" 369 ] 370 }, 371 { 372 "cmd": [ 373 "/opt/infra-android/tools/adb", 374 "push", 375 "[CLEANUP]/lwa_tmp_1/nosymlinks/bar.jpg", 376 "[CLEANUP]/lwa_tmp_1/nosymlinks/foo.png", 377 "/sdcard/revenge_of_the_skiabot/lotties_with_assets" 378 ], 379 "cwd": "[START_DIR]/skia", 380 "env": { 381 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 382 "CHROME_HEADLESS": "1", 383 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 384 }, 385 "infra_step": true, 386 "name": "push [CLEANUP]/lwa_tmp_1/nosymlinks/* /sdcard/revenge_of_the_skiabot/lotties_with_assets" 387 }, 388 { 389 "cmd": [ 390 "vpython3", 391 "-u", 392 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 393 "--json-output", 394 "/path/to/tmp/json", 395 "listdir", 396 "[CLEANUP]/lwa_tmp_1/nosymlinks" 397 ], 398 "infra_step": true, 399 "name": "list lottie files", 400 "~followup_annotations": [ 401 "@@@STEP_LOG_LINE@listdir@[CLEANUP]/lwa_tmp_1/nosymlinks/skottie_asset_000@@@", 402 "@@@STEP_LOG_LINE@listdir@[CLEANUP]/lwa_tmp_1/nosymlinks/skottie_asset_001@@@", 403 "@@@STEP_LOG_LINE@listdir@[CLEANUP]/lwa_tmp_1/nosymlinks/skottie_asset_002@@@", 404 "@@@STEP_LOG_END@listdir@@@" 405 ] 406 }, 407 { 408 "cmd": [ 409 "vpython3", 410 "-u", 411 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 412 "--json-output", 413 "/path/to/tmp/json", 414 "copy", 415 "set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --resourcePath /sdcard/revenge_of_the_skiabot/resources --lotties /sdcard/revenge_of_the_skiabot/lotties_with_assets/skottie_asset_000 --src lottie --nonativeFonts --verbose --traceMatch skottie --trace /sdcard/revenge_of_the_skiabot/dm_out/1.json --match \\^data\\.json\\$ --config gles --nocpu; echo $? >/data/local/tmp/rc", 416 "[START_DIR]/tmp/dm.sh" 417 ], 418 "env": { 419 "CHROME_HEADLESS": "1", 420 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 421 }, 422 "infra_step": true, 423 "name": "write dm.sh", 424 "~followup_annotations": [ 425 "@@@[email protected]@set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --resourcePath /sdcard/revenge_of_the_skiabot/resources --lotties /sdcard/revenge_of_the_skiabot/lotties_with_assets/skottie_asset_000 --src lottie --nonativeFonts --verbose --traceMatch skottie --trace /sdcard/revenge_of_the_skiabot/dm_out/1.json --match \\^data\\.json\\$ --config gles --nocpu; echo $? >/data/local/tmp/rc@@@", 426 "@@@[email protected]@@@" 427 ] 428 }, 429 { 430 "cmd": [ 431 "/opt/infra-android/tools/adb", 432 "push", 433 "[START_DIR]/tmp/dm.sh", 434 "/data/local/tmp/" 435 ], 436 "cwd": "[START_DIR]/skia", 437 "env": { 438 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 439 "CHROME_HEADLESS": "1", 440 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 441 }, 442 "infra_step": true, 443 "name": "push dm.sh" 444 }, 445 { 446 "cmd": [ 447 "/opt/infra-android/tools/adb", 448 "logcat", 449 "-c" 450 ], 451 "cwd": "[START_DIR]/skia", 452 "env": { 453 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 454 "CHROME_HEADLESS": "1", 455 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 456 }, 457 "infra_step": true, 458 "name": "clear log" 459 }, 460 { 461 "cmd": [ 462 "python3", 463 "RECIPE_MODULE[skia::flavor]/resources/run_sh.py", 464 "/data/local/tmp/", 465 "dm.sh", 466 "/opt/infra-android/tools/adb" 467 ], 468 "env": { 469 "CHROME_HEADLESS": "1", 470 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 471 }, 472 "name": "dm" 473 }, 474 { 475 "cmd": [ 476 "/opt/infra-android/tools/adb", 477 "shell", 478 "test", 479 "-f", 480 "/sdcard/revenge_of_the_skiabot/dm_out/1.json" 481 ], 482 "cwd": "[START_DIR]/skia", 483 "env": { 484 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 485 "CHROME_HEADLESS": "1", 486 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 487 }, 488 "infra_step": true, 489 "name": "check if /sdcard/revenge_of_the_skiabot/dm_out/1.json exists" 490 }, 491 { 492 "cmd": [ 493 "/opt/infra-android/tools/adb", 494 "shell", 495 "cat", 496 "/sdcard/revenge_of_the_skiabot/dm_out/1.json" 497 ], 498 "cwd": "[START_DIR]/skia", 499 "env": { 500 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 501 "CHROME_HEADLESS": "1", 502 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 503 }, 504 "infra_step": true, 505 "name": "read /sdcard/revenge_of_the_skiabot/dm_out/1.json" 506 }, 507 { 508 "cmd": [ 509 "python3", 510 "RECIPE_MODULE[skia::infra]/resources/parse_skottie_trace.py", 511 "\n[{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":452,\"dur\":2.57,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void SkCanvas::drawPaint(const SkPaint &)\",\"ts\":473,\"dur\":2.67e+03,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":3.15e+03,\"dur\":2.25,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::render(SkCanvas *, const SkRect *, RenderFlags) const\",\"ts\":3.15e+03,\"dur\":216,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void SkCanvas::drawPath(const SkPath &, const SkPaint &)\",\"ts\":3.35e+03,\"dur\":15.1,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":3.37e+03,\"dur\":1.17,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::render(SkCanvas *, const SkRect *, RenderFlags) const\",\"ts\":3.37e+03,\"dur\":140,\"tid\":1,\"pid\":0}]\n", 512 "skottie_asset_000", 513 "/path/to/tmp/json", 514 "skottie::Animation::seek", 515 "skottie::Animation::render", 516 "25" 517 ], 518 "env": { 519 "CHROME_HEADLESS": "1", 520 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 521 }, 522 "name": "parse skottie_asset_000 trace", 523 "~followup_annotations": [ 524 "@@@[email protected]@{@@@", 525 "@@@[email protected]@ \"frame_avg_us\": 179.71,@@@", 526 "@@@[email protected]@ \"frame_max_us\": 218.25,@@@", 527 "@@@[email protected]@ \"frame_min_us\": 141.17@@@", 528 "@@@[email protected]@}@@@", 529 "@@@[email protected]@@@" 530 ] 531 }, 532 { 533 "cmd": [ 534 "python3", 535 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 536 "/opt/infra-android/tools/adb", 537 "/sdcard/revenge_of_the_skiabot/dm_out/1.json" 538 ], 539 "env": { 540 "CHROME_HEADLESS": "1", 541 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 542 }, 543 "infra_step": true, 544 "name": "rm /sdcard/revenge_of_the_skiabot/dm_out/1.json" 545 }, 546 { 547 "cmd": [ 548 "vpython3", 549 "-u", 550 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 551 "--json-output", 552 "/path/to/tmp/json", 553 "copy", 554 "set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --resourcePath /sdcard/revenge_of_the_skiabot/resources --lotties /sdcard/revenge_of_the_skiabot/lotties_with_assets/skottie_asset_001 --src lottie --nonativeFonts --verbose --traceMatch skottie --trace /sdcard/revenge_of_the_skiabot/dm_out/2.json --match \\^data\\.json\\$ --config gles --nocpu; echo $? >/data/local/tmp/rc", 555 "[START_DIR]/tmp/dm.sh" 556 ], 557 "env": { 558 "CHROME_HEADLESS": "1", 559 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 560 }, 561 "infra_step": true, 562 "name": "write dm.sh (2)", 563 "~followup_annotations": [ 564 "@@@[email protected]@set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --resourcePath /sdcard/revenge_of_the_skiabot/resources --lotties /sdcard/revenge_of_the_skiabot/lotties_with_assets/skottie_asset_001 --src lottie --nonativeFonts --verbose --traceMatch skottie --trace /sdcard/revenge_of_the_skiabot/dm_out/2.json --match \\^data\\.json\\$ --config gles --nocpu; echo $? >/data/local/tmp/rc@@@", 565 "@@@[email protected]@@@" 566 ] 567 }, 568 { 569 "cmd": [ 570 "/opt/infra-android/tools/adb", 571 "push", 572 "[START_DIR]/tmp/dm.sh", 573 "/data/local/tmp/" 574 ], 575 "cwd": "[START_DIR]/skia", 576 "env": { 577 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 578 "CHROME_HEADLESS": "1", 579 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 580 }, 581 "infra_step": true, 582 "name": "push dm.sh (2)" 583 }, 584 { 585 "cmd": [ 586 "/opt/infra-android/tools/adb", 587 "logcat", 588 "-c" 589 ], 590 "cwd": "[START_DIR]/skia", 591 "env": { 592 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 593 "CHROME_HEADLESS": "1", 594 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 595 }, 596 "infra_step": true, 597 "name": "clear log (2)" 598 }, 599 { 600 "cmd": [ 601 "python3", 602 "RECIPE_MODULE[skia::flavor]/resources/run_sh.py", 603 "/data/local/tmp/", 604 "dm.sh", 605 "/opt/infra-android/tools/adb" 606 ], 607 "env": { 608 "CHROME_HEADLESS": "1", 609 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 610 }, 611 "name": "dm (2)" 612 }, 613 { 614 "cmd": [ 615 "/opt/infra-android/tools/adb", 616 "shell", 617 "test", 618 "-f", 619 "/sdcard/revenge_of_the_skiabot/dm_out/2.json" 620 ], 621 "cwd": "[START_DIR]/skia", 622 "env": { 623 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 624 "CHROME_HEADLESS": "1", 625 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 626 }, 627 "infra_step": true, 628 "name": "check if /sdcard/revenge_of_the_skiabot/dm_out/2.json exists" 629 }, 630 { 631 "cmd": [ 632 "/opt/infra-android/tools/adb", 633 "shell", 634 "cat", 635 "/sdcard/revenge_of_the_skiabot/dm_out/2.json" 636 ], 637 "cwd": "[START_DIR]/skia", 638 "env": { 639 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 640 "CHROME_HEADLESS": "1", 641 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 642 }, 643 "infra_step": true, 644 "name": "read /sdcard/revenge_of_the_skiabot/dm_out/2.json" 645 }, 646 { 647 "cmd": [ 648 "python3", 649 "RECIPE_MODULE[skia::infra]/resources/parse_skottie_trace.py", 650 "\n[{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":452,\"dur\":2.57,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void SkCanvas::drawPaint(const SkPaint &)\",\"ts\":473,\"dur\":2.67e+03,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":3.15e+03,\"dur\":2.25,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::render(SkCanvas *, const SkRect *, RenderFlags) const\",\"ts\":3.15e+03,\"dur\":216,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void SkCanvas::drawPath(const SkPath &, const SkPaint &)\",\"ts\":3.35e+03,\"dur\":15.1,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":3.37e+03,\"dur\":1.17,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::render(SkCanvas *, const SkRect *, RenderFlags) const\",\"ts\":3.37e+03,\"dur\":140,\"tid\":1,\"pid\":0}]\n", 651 "skottie_asset_001", 652 "/path/to/tmp/json", 653 "skottie::Animation::seek", 654 "skottie::Animation::render", 655 "25" 656 ], 657 "env": { 658 "CHROME_HEADLESS": "1", 659 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 660 }, 661 "name": "parse skottie_asset_001 trace", 662 "~followup_annotations": [ 663 "@@@[email protected]@{@@@", 664 "@@@[email protected]@ \"frame_avg_us\": 179.71,@@@", 665 "@@@[email protected]@ \"frame_max_us\": 218.25,@@@", 666 "@@@[email protected]@ \"frame_min_us\": 141.17@@@", 667 "@@@[email protected]@}@@@", 668 "@@@[email protected]@@@" 669 ] 670 }, 671 { 672 "cmd": [ 673 "python3", 674 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 675 "/opt/infra-android/tools/adb", 676 "/sdcard/revenge_of_the_skiabot/dm_out/2.json" 677 ], 678 "env": { 679 "CHROME_HEADLESS": "1", 680 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 681 }, 682 "infra_step": true, 683 "name": "rm /sdcard/revenge_of_the_skiabot/dm_out/2.json" 684 }, 685 { 686 "cmd": [ 687 "vpython3", 688 "-u", 689 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 690 "--json-output", 691 "/path/to/tmp/json", 692 "copy", 693 "set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --resourcePath /sdcard/revenge_of_the_skiabot/resources --lotties /sdcard/revenge_of_the_skiabot/lotties_with_assets/skottie_asset_002 --src lottie --nonativeFonts --verbose --traceMatch skottie --trace /sdcard/revenge_of_the_skiabot/dm_out/3.json --match \\^data\\.json\\$ --config gles --nocpu; echo $? >/data/local/tmp/rc", 694 "[START_DIR]/tmp/dm.sh" 695 ], 696 "env": { 697 "CHROME_HEADLESS": "1", 698 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 699 }, 700 "infra_step": true, 701 "name": "write dm.sh (3)", 702 "~followup_annotations": [ 703 "@@@[email protected]@set -x; LD_LIBRARY_PATH=/data/local/tmp/ /data/local/tmp/dm --resourcePath /sdcard/revenge_of_the_skiabot/resources --lotties /sdcard/revenge_of_the_skiabot/lotties_with_assets/skottie_asset_002 --src lottie --nonativeFonts --verbose --traceMatch skottie --trace /sdcard/revenge_of_the_skiabot/dm_out/3.json --match \\^data\\.json\\$ --config gles --nocpu; echo $? >/data/local/tmp/rc@@@", 704 "@@@[email protected]@@@" 705 ] 706 }, 707 { 708 "cmd": [ 709 "/opt/infra-android/tools/adb", 710 "push", 711 "[START_DIR]/tmp/dm.sh", 712 "/data/local/tmp/" 713 ], 714 "cwd": "[START_DIR]/skia", 715 "env": { 716 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 717 "CHROME_HEADLESS": "1", 718 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 719 }, 720 "infra_step": true, 721 "name": "push dm.sh (3)" 722 }, 723 { 724 "cmd": [ 725 "/opt/infra-android/tools/adb", 726 "logcat", 727 "-c" 728 ], 729 "cwd": "[START_DIR]/skia", 730 "env": { 731 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 732 "CHROME_HEADLESS": "1", 733 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 734 }, 735 "infra_step": true, 736 "name": "clear log (3)" 737 }, 738 { 739 "cmd": [ 740 "python3", 741 "RECIPE_MODULE[skia::flavor]/resources/run_sh.py", 742 "/data/local/tmp/", 743 "dm.sh", 744 "/opt/infra-android/tools/adb" 745 ], 746 "env": { 747 "CHROME_HEADLESS": "1", 748 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 749 }, 750 "name": "dm (3)" 751 }, 752 { 753 "cmd": [ 754 "/opt/infra-android/tools/adb", 755 "shell", 756 "test", 757 "-f", 758 "/sdcard/revenge_of_the_skiabot/dm_out/3.json" 759 ], 760 "cwd": "[START_DIR]/skia", 761 "env": { 762 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 763 "CHROME_HEADLESS": "1", 764 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 765 }, 766 "infra_step": true, 767 "name": "check if /sdcard/revenge_of_the_skiabot/dm_out/3.json exists" 768 }, 769 { 770 "cmd": [ 771 "/opt/infra-android/tools/adb", 772 "shell", 773 "cat", 774 "/sdcard/revenge_of_the_skiabot/dm_out/3.json" 775 ], 776 "cwd": "[START_DIR]/skia", 777 "env": { 778 "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/chrome_infrastructure_adbkey", 779 "CHROME_HEADLESS": "1", 780 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 781 }, 782 "infra_step": true, 783 "name": "read /sdcard/revenge_of_the_skiabot/dm_out/3.json" 784 }, 785 { 786 "cmd": [ 787 "python3", 788 "RECIPE_MODULE[skia::infra]/resources/parse_skottie_trace.py", 789 "\n[{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":452,\"dur\":2.57,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void SkCanvas::drawPaint(const SkPaint &)\",\"ts\":473,\"dur\":2.67e+03,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":3.15e+03,\"dur\":2.25,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::render(SkCanvas *, const SkRect *, RenderFlags) const\",\"ts\":3.15e+03,\"dur\":216,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void SkCanvas::drawPath(const SkPath &, const SkPaint &)\",\"ts\":3.35e+03,\"dur\":15.1,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::seek(SkScalar)\",\"ts\":3.37e+03,\"dur\":1.17,\"tid\":1,\"pid\":0},{\"ph\":\"X\",\"name\":\"void skottie::Animation::render(SkCanvas *, const SkRect *, RenderFlags) const\",\"ts\":3.37e+03,\"dur\":140,\"tid\":1,\"pid\":0}]\n", 790 "skottie_asset_002", 791 "/path/to/tmp/json", 792 "skottie::Animation::seek", 793 "skottie::Animation::render", 794 "25" 795 ], 796 "env": { 797 "CHROME_HEADLESS": "1", 798 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 799 }, 800 "name": "parse skottie_asset_002 trace", 801 "~followup_annotations": [ 802 "@@@[email protected]@{@@@", 803 "@@@[email protected]@ \"frame_avg_us\": 179.71,@@@", 804 "@@@[email protected]@ \"frame_max_us\": 218.25,@@@", 805 "@@@[email protected]@ \"frame_min_us\": 141.17@@@", 806 "@@@[email protected]@}@@@", 807 "@@@[email protected]@@@" 808 ] 809 }, 810 { 811 "cmd": [ 812 "python3", 813 "RECIPE_MODULE[skia::flavor]/resources/remove_file_on_device.py", 814 "/opt/infra-android/tools/adb", 815 "/sdcard/revenge_of_the_skiabot/dm_out/3.json" 816 ], 817 "env": { 818 "CHROME_HEADLESS": "1", 819 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 820 }, 821 "infra_step": true, 822 "name": "rm /sdcard/revenge_of_the_skiabot/dm_out/3.json" 823 }, 824 { 825 "cmd": [ 826 "python3", 827 "RECIPE_MODULE[skia::vars]/resources/get_env_var.py", 828 "SWARMING_BOT_ID" 829 ], 830 "name": "get swarming bot id (2)" 831 }, 832 { 833 "cmd": [ 834 "python3", 835 "RECIPE_MODULE[skia::vars]/resources/get_env_var.py", 836 "SWARMING_TASK_ID" 837 ], 838 "name": "get swarming task id" 839 }, 840 { 841 "cmd": [ 842 "vpython3", 843 "-u", 844 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 845 "--json-output", 846 "/path/to/tmp/json", 847 "ensure-directory", 848 "--mode", 849 "0o777", 850 "[START_DIR]/[SWARM_OUT_DIR]" 851 ], 852 "infra_step": true, 853 "name": "makedirs perf_dir" 854 }, 855 { 856 "cmd": [ 857 "vpython3", 858 "-u", 859 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 860 "--json-output", 861 "/path/to/tmp/json", 862 "copy", 863 "{\n \"gitHash\": \"abc123\",\n \"key\": {\n \"arch\": \"arm\",\n \"bench_type\": \"tracing\",\n \"compiler\": \"Clang\",\n \"configuration\": \"Release\",\n \"cpu_or_gpu\": \"GPU\",\n \"cpu_or_gpu_value\": \"Mali400MP2\",\n \"extra_config\": \"Android_SkottieTracing\",\n \"model\": \"AndroidOne\",\n \"os\": \"Android\",\n \"source_type\": \"skottie\"\n },\n \"renderer\": \"skottie\",\n \"results\": {\n \"skottie_asset_000\": {\n \"gles\": {\n \"frame_avg_us\": 179.71,\n \"frame_max_us\": 218.25,\n \"frame_min_us\": 141.17\n }\n },\n \"skottie_asset_001\": {\n \"gles\": {\n \"frame_avg_us\": 179.71,\n \"frame_max_us\": 218.25,\n \"frame_min_us\": 141.17\n }\n },\n \"skottie_asset_002\": {\n \"gles\": {\n \"frame_avg_us\": 179.71,\n \"frame_max_us\": 218.25,\n \"frame_min_us\": 141.17\n }\n }\n },\n \"swarming_bot_id\": \"\",\n \"swarming_task_id\": \"\"\n}", 864 "[START_DIR]/[SWARM_OUT_DIR]/perf_abc123_1337000001.json" 865 ], 866 "infra_step": true, 867 "name": "write output JSON", 868 "~followup_annotations": [ 869 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@{@@@", 870 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gitHash\": \"abc123\",@@@", 871 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"key\": {@@@", 872 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"arch\": \"arm\",@@@", 873 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"bench_type\": \"tracing\",@@@", 874 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"compiler\": \"Clang\",@@@", 875 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"configuration\": \"Release\",@@@", 876 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"cpu_or_gpu\": \"GPU\",@@@", 877 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"cpu_or_gpu_value\": \"Mali400MP2\",@@@", 878 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"extra_config\": \"Android_SkottieTracing\",@@@", 879 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"model\": \"AndroidOne\",@@@", 880 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"os\": \"Android\",@@@", 881 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"source_type\": \"skottie\"@@@", 882 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 883 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"renderer\": \"skottie\",@@@", 884 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"results\": {@@@", 885 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"skottie_asset_000\": {@@@", 886 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gles\": {@@@", 887 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_avg_us\": 179.71,@@@", 888 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_max_us\": 218.25,@@@", 889 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_min_us\": 141.17@@@", 890 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 891 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 892 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"skottie_asset_001\": {@@@", 893 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gles\": {@@@", 894 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_avg_us\": 179.71,@@@", 895 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_max_us\": 218.25,@@@", 896 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_min_us\": 141.17@@@", 897 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 898 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 899 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"skottie_asset_002\": {@@@", 900 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gles\": {@@@", 901 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_avg_us\": 179.71,@@@", 902 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_max_us\": 218.25,@@@", 903 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_min_us\": 141.17@@@", 904 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 905 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 906 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 907 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"swarming_bot_id\": \"\",@@@", 908 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"swarming_task_id\": \"\"@@@", 909 "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@}@@@", 910 "@@@STEP_LOG_END@perf_abc123_1337000001.json@@@" 911 ] 912 }, 913 { 914 "cmd": [ 915 "/opt/infra-android/tools/adb", 916 "reboot" 917 ], 918 "env": { 919 "CHROME_HEADLESS": "1", 920 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 921 }, 922 "infra_step": true, 923 "name": "adb reboot device", 924 "timeout": 30 925 }, 926 { 927 "cmd": [ 928 "/opt/infra-android/tools/adb", 929 "wait-for-device", 930 "shell", 931 "while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done" 932 ], 933 "env": { 934 "CHROME_HEADLESS": "1", 935 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 936 }, 937 "name": "wait for device after rebooting", 938 "timeout": 180 939 }, 940 { 941 "cmd": [ 942 "python3", 943 "RECIPE_MODULE[skia::flavor]/resources/dump_adb_log.py", 944 "[START_DIR]/build", 945 "/opt/infra-android/tools/adb" 946 ], 947 "env": { 948 "CHROME_HEADLESS": "1", 949 "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 950 }, 951 "infra_step": true, 952 "name": "dump log", 953 "timeout": 300 954 }, 955 { 956 "name": "$result" 957 } 958]