1cb93a386Sopenharmony_ci[ 2cb93a386Sopenharmony_ci { 3cb93a386Sopenharmony_ci "cmd": [ 4cb93a386Sopenharmony_ci "vpython", 5cb93a386Sopenharmony_ci "-u", 6cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 7cb93a386Sopenharmony_ci "--json-output", 8cb93a386Sopenharmony_ci "/path/to/tmp/json", 9cb93a386Sopenharmony_ci "ensure-directory", 10cb93a386Sopenharmony_ci "--mode", 11cb93a386Sopenharmony_ci "0777", 12cb93a386Sopenharmony_ci "[START_DIR]/tmp" 13cb93a386Sopenharmony_ci ], 14cb93a386Sopenharmony_ci "infra_step": true, 15cb93a386Sopenharmony_ci "name": "makedirs tmp_dir" 16cb93a386Sopenharmony_ci }, 17cb93a386Sopenharmony_ci { 18cb93a386Sopenharmony_ci "cmd": [ 19cb93a386Sopenharmony_ci "vpython", 20cb93a386Sopenharmony_ci "-u", 21cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 22cb93a386Sopenharmony_ci "--json-output", 23cb93a386Sopenharmony_ci "/path/to/tmp/json", 24cb93a386Sopenharmony_ci "copy", 25cb93a386Sopenharmony_ci "[START_DIR]/skia/infra/bots/assets/lottie-samples/VERSION", 26cb93a386Sopenharmony_ci "/path/to/tmp/" 27cb93a386Sopenharmony_ci ], 28cb93a386Sopenharmony_ci "infra_step": true, 29cb93a386Sopenharmony_ci "name": "Get lottie-samples VERSION", 30cb93a386Sopenharmony_ci "~followup_annotations": [ 31cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@VERSION@42@@@", 32cb93a386Sopenharmony_ci "@@@STEP_LOG_END@VERSION@@@" 33cb93a386Sopenharmony_ci ] 34cb93a386Sopenharmony_ci }, 35cb93a386Sopenharmony_ci { 36cb93a386Sopenharmony_ci "cmd": [ 37cb93a386Sopenharmony_ci "vpython", 38cb93a386Sopenharmony_ci "-u", 39cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 40cb93a386Sopenharmony_ci "--json-output", 41cb93a386Sopenharmony_ci "/path/to/tmp/json", 42cb93a386Sopenharmony_ci "copy", 43cb93a386Sopenharmony_ci "42", 44cb93a386Sopenharmony_ci "[START_DIR]/tmp/LOTTIE_VERSION" 45cb93a386Sopenharmony_ci ], 46cb93a386Sopenharmony_ci "infra_step": true, 47cb93a386Sopenharmony_ci "name": "write LOTTIE_VERSION", 48cb93a386Sopenharmony_ci "~followup_annotations": [ 49cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@LOTTIE_VERSION@42@@@", 50cb93a386Sopenharmony_ci "@@@STEP_LOG_END@LOTTIE_VERSION@@@" 51cb93a386Sopenharmony_ci ] 52cb93a386Sopenharmony_ci }, 53cb93a386Sopenharmony_ci { 54cb93a386Sopenharmony_ci "cmd": [ 55cb93a386Sopenharmony_ci "vpython", 56cb93a386Sopenharmony_ci "-u", 57cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 58cb93a386Sopenharmony_ci "--json-output", 59cb93a386Sopenharmony_ci "/path/to/tmp/json", 60cb93a386Sopenharmony_ci "rmtree", 61cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]" 62cb93a386Sopenharmony_ci ], 63cb93a386Sopenharmony_ci "infra_step": true, 64cb93a386Sopenharmony_ci "name": "rmtree [SWARM_OUT_DIR]" 65cb93a386Sopenharmony_ci }, 66cb93a386Sopenharmony_ci { 67cb93a386Sopenharmony_ci "cmd": [ 68cb93a386Sopenharmony_ci "vpython", 69cb93a386Sopenharmony_ci "-u", 70cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 71cb93a386Sopenharmony_ci "--json-output", 72cb93a386Sopenharmony_ci "/path/to/tmp/json", 73cb93a386Sopenharmony_ci "ensure-directory", 74cb93a386Sopenharmony_ci "--mode", 75cb93a386Sopenharmony_ci "0777", 76cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]" 77cb93a386Sopenharmony_ci ], 78cb93a386Sopenharmony_ci "infra_step": true, 79cb93a386Sopenharmony_ci "name": "makedirs [SWARM_OUT_DIR]" 80cb93a386Sopenharmony_ci }, 81cb93a386Sopenharmony_ci { 82cb93a386Sopenharmony_ci "cmd": [ 83cb93a386Sopenharmony_ci "vpython", 84cb93a386Sopenharmony_ci "-u", 85cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 86cb93a386Sopenharmony_ci "--json-output", 87cb93a386Sopenharmony_ci "/path/to/tmp/json", 88cb93a386Sopenharmony_ci "listdir", 89cb93a386Sopenharmony_ci "[START_DIR]/lottie-samples" 90cb93a386Sopenharmony_ci ], 91cb93a386Sopenharmony_ci "infra_step": true, 92cb93a386Sopenharmony_ci "name": "list lottie files", 93cb93a386Sopenharmony_ci "~followup_annotations": [ 94cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@listdir@[START_DIR]/lottie-samples/LICENSE@@@", 95cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@listdir@[START_DIR]/lottie-samples/lottie 3!.json@@@", 96cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@listdir@[START_DIR]/lottie-samples/lottie(test)'!2.json@@@", 97cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@listdir@[START_DIR]/lottie-samples/lottie1.json@@@", 98cb93a386Sopenharmony_ci "@@@STEP_LOG_END@listdir@@@" 99cb93a386Sopenharmony_ci ] 100cb93a386Sopenharmony_ci }, 101cb93a386Sopenharmony_ci { 102cb93a386Sopenharmony_ci "cmd": [ 103cb93a386Sopenharmony_ci "python", 104cb93a386Sopenharmony_ci "-u", 105cb93a386Sopenharmony_ci "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py", 106cb93a386Sopenharmony_ci "[START_DIR]", 107cb93a386Sopenharmony_ci "catchsegv", 108cb93a386Sopenharmony_ci "[START_DIR]/build/dm", 109cb93a386Sopenharmony_ci "--resourcePath", 110cb93a386Sopenharmony_ci "[START_DIR]/skia/resources", 111cb93a386Sopenharmony_ci "--lotties", 112cb93a386Sopenharmony_ci "[START_DIR]/lottie-samples", 113cb93a386Sopenharmony_ci "--src", 114cb93a386Sopenharmony_ci "lottie", 115cb93a386Sopenharmony_ci "--nonativeFonts", 116cb93a386Sopenharmony_ci "--verbose", 117cb93a386Sopenharmony_ci "--traceMatch", 118cb93a386Sopenharmony_ci "skottie", 119cb93a386Sopenharmony_ci "--trace", 120cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/2.json", 121cb93a386Sopenharmony_ci "--match", 122cb93a386Sopenharmony_ci "^lottie 3!.json$", 123cb93a386Sopenharmony_ci "--config", 124cb93a386Sopenharmony_ci "8888", 125cb93a386Sopenharmony_ci "--nogpu" 126cb93a386Sopenharmony_ci ], 127cb93a386Sopenharmony_ci "cwd": "[START_DIR]/skia", 128cb93a386Sopenharmony_ci "env": { 129cb93a386Sopenharmony_ci "CHROME_HEADLESS": "1", 130cb93a386Sopenharmony_ci "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 131cb93a386Sopenharmony_ci }, 132cb93a386Sopenharmony_ci "name": "symbolized dm" 133cb93a386Sopenharmony_ci }, 134cb93a386Sopenharmony_ci { 135cb93a386Sopenharmony_ci "cmd": [ 136cb93a386Sopenharmony_ci "vpython", 137cb93a386Sopenharmony_ci "-u", 138cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 139cb93a386Sopenharmony_ci "--json-output", 140cb93a386Sopenharmony_ci "/path/to/tmp/json", 141cb93a386Sopenharmony_ci "copy", 142cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/2.json", 143cb93a386Sopenharmony_ci "/path/to/tmp/" 144cb93a386Sopenharmony_ci ], 145cb93a386Sopenharmony_ci "infra_step": true, 146cb93a386Sopenharmony_ci "name": "read [START_DIR]/[SWARM_OUT_DIR]/2.json", 147cb93a386Sopenharmony_ci "~followup_annotations": [ 148cb93a386Sopenharmony_ci "@@@STEP_LOG_END@2.json@@@" 149cb93a386Sopenharmony_ci ] 150cb93a386Sopenharmony_ci }, 151cb93a386Sopenharmony_ci { 152cb93a386Sopenharmony_ci "cmd": [ 153cb93a386Sopenharmony_ci "python", 154cb93a386Sopenharmony_ci "-u", 155cb93a386Sopenharmony_ci "\nimport json\nimport sys\n\ntrace_output = sys.argv[1]\ntrace_json = json.loads(trace_output)\nlottie_filename = sys.argv[2]\noutput_json_file = sys.argv[3]\n\nperf_results = {}\nframe_max = 0\nframe_min = 0\nframe_cumulative = 0\ncurrent_frame_duration = 0\ntotal_frames = 0\nframe_start = False\nfor trace in trace_json:\n if 'skottie::Animation::seek' in trace['name']:\n if frame_start:\n raise Exception('We got consecutive Animation::seek without a ' +\n 'render. Something is wrong.')\n frame_start = True\n current_frame_duration = trace['dur']\n elif 'skottie::Animation::render' in trace['name']:\n if not frame_start:\n raise Exception('We got an Animation::render without a seek first. ' +\n 'Something is wrong.')\n\n current_frame_duration += trace['dur']\n frame_start = False\n total_frames += 1\n frame_max = max(frame_max, current_frame_duration)\n frame_min = (min(frame_min, current_frame_duration)\n if frame_min else current_frame_duration)\n frame_cumulative += current_frame_duration\n\nexpected_dm_frames = 25\nif total_frames != expected_dm_frames:\n raise Exception(\n 'Got ' + str(total_frames) + ' frames instead of ' +\n str(expected_dm_frames))\nperf_results['frame_max_us'] = frame_max\nperf_results['frame_min_us'] = frame_min\nperf_results['frame_avg_us'] = frame_cumulative/total_frames\n\n# Write perf_results to the output json.\nwith open(output_json_file, 'w') as f:\n f.write(json.dumps(perf_results))\n", 156cb93a386Sopenharmony_ci "\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", 157cb93a386Sopenharmony_ci "lottie 3!.json", 158cb93a386Sopenharmony_ci "/path/to/tmp/json" 159cb93a386Sopenharmony_ci ], 160cb93a386Sopenharmony_ci "env": { 161cb93a386Sopenharmony_ci "CHROME_HEADLESS": "1", 162cb93a386Sopenharmony_ci "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 163cb93a386Sopenharmony_ci }, 164cb93a386Sopenharmony_ci "name": "parse lottie 3!.json trace", 165cb93a386Sopenharmony_ci "~followup_annotations": [ 166cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@{@@@", 167cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_avg_us\": 179.71, @@@", 168cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_max_us\": 218.25, @@@", 169cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_min_us\": 141.17@@@", 170cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@}@@@", 171cb93a386Sopenharmony_ci "@@@STEP_LOG_END@json.output@@@", 172cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 173cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import json@@@", 174cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import sys@@@", 175cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 176cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@trace_output = sys.argv[1]@@@", 177cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@trace_json = json.loads(trace_output)@@@", 178cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@lottie_filename = sys.argv[2]@@@", 179cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@output_json_file = sys.argv[3]@@@", 180cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 181cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results = {}@@@", 182cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_max = 0@@@", 183cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_min = 0@@@", 184cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_cumulative = 0@@@", 185cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@current_frame_duration = 0@@@", 186cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@total_frames = 0@@@", 187cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_start = False@@@", 188cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@for trace in trace_json:@@@", 189cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if 'skottie::Animation::seek' in trace['name']:@@@", 190cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if frame_start:@@@", 191cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception('We got consecutive Animation::seek without a ' +@@@", 192cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'render. Something is wrong.')@@@", 193cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_start = True@@@", 194cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ current_frame_duration = trace['dur']@@@", 195cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ elif 'skottie::Animation::render' in trace['name']:@@@", 196cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if not frame_start:@@@", 197cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception('We got an Animation::render without a seek first. ' +@@@", 198cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'Something is wrong.')@@@", 199cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 200cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ current_frame_duration += trace['dur']@@@", 201cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_start = False@@@", 202cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ total_frames += 1@@@", 203cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_max = max(frame_max, current_frame_duration)@@@", 204cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_min = (min(frame_min, current_frame_duration)@@@", 205cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if frame_min else current_frame_duration)@@@", 206cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_cumulative += current_frame_duration@@@", 207cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 208cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@expected_dm_frames = 25@@@", 209cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@if total_frames != expected_dm_frames:@@@", 210cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception(@@@", 211cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'Got ' + str(total_frames) + ' frames instead of ' +@@@", 212cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ str(expected_dm_frames))@@@", 213cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_max_us'] = frame_max@@@", 214cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_min_us'] = frame_min@@@", 215cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_avg_us'] = frame_cumulative/total_frames@@@", 216cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 217cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@# Write perf_results to the output json.@@@", 218cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@with open(output_json_file, 'w') as f:@@@", 219cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ f.write(json.dumps(perf_results))@@@", 220cb93a386Sopenharmony_ci "@@@STEP_LOG_END@python.inline@@@" 221cb93a386Sopenharmony_ci ] 222cb93a386Sopenharmony_ci }, 223cb93a386Sopenharmony_ci { 224cb93a386Sopenharmony_ci "cmd": [ 225cb93a386Sopenharmony_ci "vpython", 226cb93a386Sopenharmony_ci "-u", 227cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 228cb93a386Sopenharmony_ci "--json-output", 229cb93a386Sopenharmony_ci "/path/to/tmp/json", 230cb93a386Sopenharmony_ci "remove", 231cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/2.json" 232cb93a386Sopenharmony_ci ], 233cb93a386Sopenharmony_ci "infra_step": true, 234cb93a386Sopenharmony_ci "name": "remove [START_DIR]/[SWARM_OUT_DIR]/2.json" 235cb93a386Sopenharmony_ci }, 236cb93a386Sopenharmony_ci { 237cb93a386Sopenharmony_ci "cmd": [ 238cb93a386Sopenharmony_ci "python", 239cb93a386Sopenharmony_ci "-u", 240cb93a386Sopenharmony_ci "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py", 241cb93a386Sopenharmony_ci "[START_DIR]", 242cb93a386Sopenharmony_ci "catchsegv", 243cb93a386Sopenharmony_ci "[START_DIR]/build/dm", 244cb93a386Sopenharmony_ci "--resourcePath", 245cb93a386Sopenharmony_ci "[START_DIR]/skia/resources", 246cb93a386Sopenharmony_ci "--lotties", 247cb93a386Sopenharmony_ci "[START_DIR]/lottie-samples", 248cb93a386Sopenharmony_ci "--src", 249cb93a386Sopenharmony_ci "lottie", 250cb93a386Sopenharmony_ci "--nonativeFonts", 251cb93a386Sopenharmony_ci "--verbose", 252cb93a386Sopenharmony_ci "--traceMatch", 253cb93a386Sopenharmony_ci "skottie", 254cb93a386Sopenharmony_ci "--trace", 255cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/3.json", 256cb93a386Sopenharmony_ci "--match", 257cb93a386Sopenharmony_ci "^lottie(test)'!2.json$", 258cb93a386Sopenharmony_ci "--config", 259cb93a386Sopenharmony_ci "8888", 260cb93a386Sopenharmony_ci "--nogpu" 261cb93a386Sopenharmony_ci ], 262cb93a386Sopenharmony_ci "cwd": "[START_DIR]/skia", 263cb93a386Sopenharmony_ci "env": { 264cb93a386Sopenharmony_ci "CHROME_HEADLESS": "1", 265cb93a386Sopenharmony_ci "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 266cb93a386Sopenharmony_ci }, 267cb93a386Sopenharmony_ci "name": "symbolized dm (2)" 268cb93a386Sopenharmony_ci }, 269cb93a386Sopenharmony_ci { 270cb93a386Sopenharmony_ci "cmd": [ 271cb93a386Sopenharmony_ci "vpython", 272cb93a386Sopenharmony_ci "-u", 273cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 274cb93a386Sopenharmony_ci "--json-output", 275cb93a386Sopenharmony_ci "/path/to/tmp/json", 276cb93a386Sopenharmony_ci "copy", 277cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/3.json", 278cb93a386Sopenharmony_ci "/path/to/tmp/" 279cb93a386Sopenharmony_ci ], 280cb93a386Sopenharmony_ci "infra_step": true, 281cb93a386Sopenharmony_ci "name": "read [START_DIR]/[SWARM_OUT_DIR]/3.json", 282cb93a386Sopenharmony_ci "~followup_annotations": [ 283cb93a386Sopenharmony_ci "@@@STEP_LOG_END@3.json@@@" 284cb93a386Sopenharmony_ci ] 285cb93a386Sopenharmony_ci }, 286cb93a386Sopenharmony_ci { 287cb93a386Sopenharmony_ci "cmd": [ 288cb93a386Sopenharmony_ci "python", 289cb93a386Sopenharmony_ci "-u", 290cb93a386Sopenharmony_ci "\nimport json\nimport sys\n\ntrace_output = sys.argv[1]\ntrace_json = json.loads(trace_output)\nlottie_filename = sys.argv[2]\noutput_json_file = sys.argv[3]\n\nperf_results = {}\nframe_max = 0\nframe_min = 0\nframe_cumulative = 0\ncurrent_frame_duration = 0\ntotal_frames = 0\nframe_start = False\nfor trace in trace_json:\n if 'skottie::Animation::seek' in trace['name']:\n if frame_start:\n raise Exception('We got consecutive Animation::seek without a ' +\n 'render. Something is wrong.')\n frame_start = True\n current_frame_duration = trace['dur']\n elif 'skottie::Animation::render' in trace['name']:\n if not frame_start:\n raise Exception('We got an Animation::render without a seek first. ' +\n 'Something is wrong.')\n\n current_frame_duration += trace['dur']\n frame_start = False\n total_frames += 1\n frame_max = max(frame_max, current_frame_duration)\n frame_min = (min(frame_min, current_frame_duration)\n if frame_min else current_frame_duration)\n frame_cumulative += current_frame_duration\n\nexpected_dm_frames = 25\nif total_frames != expected_dm_frames:\n raise Exception(\n 'Got ' + str(total_frames) + ' frames instead of ' +\n str(expected_dm_frames))\nperf_results['frame_max_us'] = frame_max\nperf_results['frame_min_us'] = frame_min\nperf_results['frame_avg_us'] = frame_cumulative/total_frames\n\n# Write perf_results to the output json.\nwith open(output_json_file, 'w') as f:\n f.write(json.dumps(perf_results))\n", 291cb93a386Sopenharmony_ci "\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", 292cb93a386Sopenharmony_ci "lottie(test)'!2.json", 293cb93a386Sopenharmony_ci "/path/to/tmp/json" 294cb93a386Sopenharmony_ci ], 295cb93a386Sopenharmony_ci "env": { 296cb93a386Sopenharmony_ci "CHROME_HEADLESS": "1", 297cb93a386Sopenharmony_ci "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 298cb93a386Sopenharmony_ci }, 299cb93a386Sopenharmony_ci "name": "parse lottie(test)'!2.json trace", 300cb93a386Sopenharmony_ci "~followup_annotations": [ 301cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@{@@@", 302cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_avg_us\": 179.71, @@@", 303cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_max_us\": 218.25, @@@", 304cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_min_us\": 141.17@@@", 305cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@}@@@", 306cb93a386Sopenharmony_ci "@@@STEP_LOG_END@json.output@@@", 307cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 308cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import json@@@", 309cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import sys@@@", 310cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 311cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@trace_output = sys.argv[1]@@@", 312cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@trace_json = json.loads(trace_output)@@@", 313cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@lottie_filename = sys.argv[2]@@@", 314cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@output_json_file = sys.argv[3]@@@", 315cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 316cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results = {}@@@", 317cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_max = 0@@@", 318cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_min = 0@@@", 319cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_cumulative = 0@@@", 320cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@current_frame_duration = 0@@@", 321cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@total_frames = 0@@@", 322cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_start = False@@@", 323cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@for trace in trace_json:@@@", 324cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if 'skottie::Animation::seek' in trace['name']:@@@", 325cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if frame_start:@@@", 326cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception('We got consecutive Animation::seek without a ' +@@@", 327cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'render. Something is wrong.')@@@", 328cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_start = True@@@", 329cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ current_frame_duration = trace['dur']@@@", 330cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ elif 'skottie::Animation::render' in trace['name']:@@@", 331cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if not frame_start:@@@", 332cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception('We got an Animation::render without a seek first. ' +@@@", 333cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'Something is wrong.')@@@", 334cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 335cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ current_frame_duration += trace['dur']@@@", 336cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_start = False@@@", 337cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ total_frames += 1@@@", 338cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_max = max(frame_max, current_frame_duration)@@@", 339cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_min = (min(frame_min, current_frame_duration)@@@", 340cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if frame_min else current_frame_duration)@@@", 341cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_cumulative += current_frame_duration@@@", 342cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 343cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@expected_dm_frames = 25@@@", 344cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@if total_frames != expected_dm_frames:@@@", 345cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception(@@@", 346cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'Got ' + str(total_frames) + ' frames instead of ' +@@@", 347cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ str(expected_dm_frames))@@@", 348cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_max_us'] = frame_max@@@", 349cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_min_us'] = frame_min@@@", 350cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_avg_us'] = frame_cumulative/total_frames@@@", 351cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 352cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@# Write perf_results to the output json.@@@", 353cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@with open(output_json_file, 'w') as f:@@@", 354cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ f.write(json.dumps(perf_results))@@@", 355cb93a386Sopenharmony_ci "@@@STEP_LOG_END@python.inline@@@" 356cb93a386Sopenharmony_ci ] 357cb93a386Sopenharmony_ci }, 358cb93a386Sopenharmony_ci { 359cb93a386Sopenharmony_ci "cmd": [ 360cb93a386Sopenharmony_ci "vpython", 361cb93a386Sopenharmony_ci "-u", 362cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 363cb93a386Sopenharmony_ci "--json-output", 364cb93a386Sopenharmony_ci "/path/to/tmp/json", 365cb93a386Sopenharmony_ci "remove", 366cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/3.json" 367cb93a386Sopenharmony_ci ], 368cb93a386Sopenharmony_ci "infra_step": true, 369cb93a386Sopenharmony_ci "name": "remove [START_DIR]/[SWARM_OUT_DIR]/3.json" 370cb93a386Sopenharmony_ci }, 371cb93a386Sopenharmony_ci { 372cb93a386Sopenharmony_ci "cmd": [ 373cb93a386Sopenharmony_ci "python", 374cb93a386Sopenharmony_ci "-u", 375cb93a386Sopenharmony_ci "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py", 376cb93a386Sopenharmony_ci "[START_DIR]", 377cb93a386Sopenharmony_ci "catchsegv", 378cb93a386Sopenharmony_ci "[START_DIR]/build/dm", 379cb93a386Sopenharmony_ci "--resourcePath", 380cb93a386Sopenharmony_ci "[START_DIR]/skia/resources", 381cb93a386Sopenharmony_ci "--lotties", 382cb93a386Sopenharmony_ci "[START_DIR]/lottie-samples", 383cb93a386Sopenharmony_ci "--src", 384cb93a386Sopenharmony_ci "lottie", 385cb93a386Sopenharmony_ci "--nonativeFonts", 386cb93a386Sopenharmony_ci "--verbose", 387cb93a386Sopenharmony_ci "--traceMatch", 388cb93a386Sopenharmony_ci "skottie", 389cb93a386Sopenharmony_ci "--trace", 390cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/4.json", 391cb93a386Sopenharmony_ci "--match", 392cb93a386Sopenharmony_ci "^lottie1.json$", 393cb93a386Sopenharmony_ci "--config", 394cb93a386Sopenharmony_ci "8888", 395cb93a386Sopenharmony_ci "--nogpu" 396cb93a386Sopenharmony_ci ], 397cb93a386Sopenharmony_ci "cwd": "[START_DIR]/skia", 398cb93a386Sopenharmony_ci "env": { 399cb93a386Sopenharmony_ci "CHROME_HEADLESS": "1", 400cb93a386Sopenharmony_ci "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 401cb93a386Sopenharmony_ci }, 402cb93a386Sopenharmony_ci "name": "symbolized dm (3)" 403cb93a386Sopenharmony_ci }, 404cb93a386Sopenharmony_ci { 405cb93a386Sopenharmony_ci "cmd": [ 406cb93a386Sopenharmony_ci "vpython", 407cb93a386Sopenharmony_ci "-u", 408cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 409cb93a386Sopenharmony_ci "--json-output", 410cb93a386Sopenharmony_ci "/path/to/tmp/json", 411cb93a386Sopenharmony_ci "copy", 412cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/4.json", 413cb93a386Sopenharmony_ci "/path/to/tmp/" 414cb93a386Sopenharmony_ci ], 415cb93a386Sopenharmony_ci "infra_step": true, 416cb93a386Sopenharmony_ci "name": "read [START_DIR]/[SWARM_OUT_DIR]/4.json", 417cb93a386Sopenharmony_ci "~followup_annotations": [ 418cb93a386Sopenharmony_ci "@@@STEP_LOG_END@4.json@@@" 419cb93a386Sopenharmony_ci ] 420cb93a386Sopenharmony_ci }, 421cb93a386Sopenharmony_ci { 422cb93a386Sopenharmony_ci "cmd": [ 423cb93a386Sopenharmony_ci "python", 424cb93a386Sopenharmony_ci "-u", 425cb93a386Sopenharmony_ci "\nimport json\nimport sys\n\ntrace_output = sys.argv[1]\ntrace_json = json.loads(trace_output)\nlottie_filename = sys.argv[2]\noutput_json_file = sys.argv[3]\n\nperf_results = {}\nframe_max = 0\nframe_min = 0\nframe_cumulative = 0\ncurrent_frame_duration = 0\ntotal_frames = 0\nframe_start = False\nfor trace in trace_json:\n if 'skottie::Animation::seek' in trace['name']:\n if frame_start:\n raise Exception('We got consecutive Animation::seek without a ' +\n 'render. Something is wrong.')\n frame_start = True\n current_frame_duration = trace['dur']\n elif 'skottie::Animation::render' in trace['name']:\n if not frame_start:\n raise Exception('We got an Animation::render without a seek first. ' +\n 'Something is wrong.')\n\n current_frame_duration += trace['dur']\n frame_start = False\n total_frames += 1\n frame_max = max(frame_max, current_frame_duration)\n frame_min = (min(frame_min, current_frame_duration)\n if frame_min else current_frame_duration)\n frame_cumulative += current_frame_duration\n\nexpected_dm_frames = 25\nif total_frames != expected_dm_frames:\n raise Exception(\n 'Got ' + str(total_frames) + ' frames instead of ' +\n str(expected_dm_frames))\nperf_results['frame_max_us'] = frame_max\nperf_results['frame_min_us'] = frame_min\nperf_results['frame_avg_us'] = frame_cumulative/total_frames\n\n# Write perf_results to the output json.\nwith open(output_json_file, 'w') as f:\n f.write(json.dumps(perf_results))\n", 426cb93a386Sopenharmony_ci "\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", 427cb93a386Sopenharmony_ci "lottie1.json", 428cb93a386Sopenharmony_ci "/path/to/tmp/json" 429cb93a386Sopenharmony_ci ], 430cb93a386Sopenharmony_ci "env": { 431cb93a386Sopenharmony_ci "CHROME_HEADLESS": "1", 432cb93a386Sopenharmony_ci "PATH": "<PATH>:RECIPE_REPO[depot_tools]" 433cb93a386Sopenharmony_ci }, 434cb93a386Sopenharmony_ci "name": "parse lottie1.json trace", 435cb93a386Sopenharmony_ci "~followup_annotations": [ 436cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@{@@@", 437cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_avg_us\": 179.71, @@@", 438cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_max_us\": 218.25, @@@", 439cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@ \"frame_min_us\": 141.17@@@", 440cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@json.output@}@@@", 441cb93a386Sopenharmony_ci "@@@STEP_LOG_END@json.output@@@", 442cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 443cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import json@@@", 444cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import sys@@@", 445cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 446cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@trace_output = sys.argv[1]@@@", 447cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@trace_json = json.loads(trace_output)@@@", 448cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@lottie_filename = sys.argv[2]@@@", 449cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@output_json_file = sys.argv[3]@@@", 450cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 451cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results = {}@@@", 452cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_max = 0@@@", 453cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_min = 0@@@", 454cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_cumulative = 0@@@", 455cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@current_frame_duration = 0@@@", 456cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@total_frames = 0@@@", 457cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@frame_start = False@@@", 458cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@for trace in trace_json:@@@", 459cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if 'skottie::Animation::seek' in trace['name']:@@@", 460cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if frame_start:@@@", 461cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception('We got consecutive Animation::seek without a ' +@@@", 462cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'render. Something is wrong.')@@@", 463cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_start = True@@@", 464cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ current_frame_duration = trace['dur']@@@", 465cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ elif 'skottie::Animation::render' in trace['name']:@@@", 466cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if not frame_start:@@@", 467cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception('We got an Animation::render without a seek first. ' +@@@", 468cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'Something is wrong.')@@@", 469cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 470cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ current_frame_duration += trace['dur']@@@", 471cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_start = False@@@", 472cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ total_frames += 1@@@", 473cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_max = max(frame_max, current_frame_duration)@@@", 474cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_min = (min(frame_min, current_frame_duration)@@@", 475cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ if frame_min else current_frame_duration)@@@", 476cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ frame_cumulative += current_frame_duration@@@", 477cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 478cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@expected_dm_frames = 25@@@", 479cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@if total_frames != expected_dm_frames:@@@", 480cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ raise Exception(@@@", 481cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ 'Got ' + str(total_frames) + ' frames instead of ' +@@@", 482cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ str(expected_dm_frames))@@@", 483cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_max_us'] = frame_max@@@", 484cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_min_us'] = frame_min@@@", 485cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@perf_results['frame_avg_us'] = frame_cumulative/total_frames@@@", 486cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@@@@", 487cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@# Write perf_results to the output json.@@@", 488cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@with open(output_json_file, 'w') as f:@@@", 489cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@ f.write(json.dumps(perf_results))@@@", 490cb93a386Sopenharmony_ci "@@@STEP_LOG_END@python.inline@@@" 491cb93a386Sopenharmony_ci ] 492cb93a386Sopenharmony_ci }, 493cb93a386Sopenharmony_ci { 494cb93a386Sopenharmony_ci "cmd": [ 495cb93a386Sopenharmony_ci "vpython", 496cb93a386Sopenharmony_ci "-u", 497cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 498cb93a386Sopenharmony_ci "--json-output", 499cb93a386Sopenharmony_ci "/path/to/tmp/json", 500cb93a386Sopenharmony_ci "remove", 501cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/4.json" 502cb93a386Sopenharmony_ci ], 503cb93a386Sopenharmony_ci "infra_step": true, 504cb93a386Sopenharmony_ci "name": "remove [START_DIR]/[SWARM_OUT_DIR]/4.json" 505cb93a386Sopenharmony_ci }, 506cb93a386Sopenharmony_ci { 507cb93a386Sopenharmony_ci "cmd": [ 508cb93a386Sopenharmony_ci "python", 509cb93a386Sopenharmony_ci "-u", 510cb93a386Sopenharmony_ci "import os\nprint(os.environ.get('SWARMING_BOT_ID', ''))\n" 511cb93a386Sopenharmony_ci ], 512cb93a386Sopenharmony_ci "name": "get swarming bot id", 513cb93a386Sopenharmony_ci "~followup_annotations": [ 514cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import os@@@", 515cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_BOT_ID', ''))@@@", 516cb93a386Sopenharmony_ci "@@@STEP_LOG_END@python.inline@@@" 517cb93a386Sopenharmony_ci ] 518cb93a386Sopenharmony_ci }, 519cb93a386Sopenharmony_ci { 520cb93a386Sopenharmony_ci "cmd": [ 521cb93a386Sopenharmony_ci "python", 522cb93a386Sopenharmony_ci "-u", 523cb93a386Sopenharmony_ci "import os\nprint(os.environ.get('SWARMING_TASK_ID', ''))\n" 524cb93a386Sopenharmony_ci ], 525cb93a386Sopenharmony_ci "name": "get swarming task id", 526cb93a386Sopenharmony_ci "~followup_annotations": [ 527cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@import os@@@", 528cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_TASK_ID', ''))@@@", 529cb93a386Sopenharmony_ci "@@@STEP_LOG_END@python.inline@@@" 530cb93a386Sopenharmony_ci ] 531cb93a386Sopenharmony_ci }, 532cb93a386Sopenharmony_ci { 533cb93a386Sopenharmony_ci "cmd": [ 534cb93a386Sopenharmony_ci "vpython", 535cb93a386Sopenharmony_ci "-u", 536cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 537cb93a386Sopenharmony_ci "--json-output", 538cb93a386Sopenharmony_ci "/path/to/tmp/json", 539cb93a386Sopenharmony_ci "ensure-directory", 540cb93a386Sopenharmony_ci "--mode", 541cb93a386Sopenharmony_ci "0777", 542cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]" 543cb93a386Sopenharmony_ci ], 544cb93a386Sopenharmony_ci "infra_step": true, 545cb93a386Sopenharmony_ci "name": "makedirs perf_dir" 546cb93a386Sopenharmony_ci }, 547cb93a386Sopenharmony_ci { 548cb93a386Sopenharmony_ci "cmd": [ 549cb93a386Sopenharmony_ci "vpython", 550cb93a386Sopenharmony_ci "-u", 551cb93a386Sopenharmony_ci "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 552cb93a386Sopenharmony_ci "--json-output", 553cb93a386Sopenharmony_ci "/path/to/tmp/json", 554cb93a386Sopenharmony_ci "copy", 555cb93a386Sopenharmony_ci "{\n \"gitHash\": \"abc123\",\n \"key\": {\n \"arch\": \"x86_64\",\n \"bench_type\": \"tracing\",\n \"compiler\": \"Clang\",\n \"configuration\": \"Release\",\n \"cpu_or_gpu\": \"CPU\",\n \"cpu_or_gpu_value\": \"AVX2\",\n \"extra_config\": \"SkottieTracing\",\n \"model\": \"GCE\",\n \"os\": \"Debian10\",\n \"source_type\": \"skottie\"\n },\n \"renderer\": \"skottie\",\n \"results\": {\n \"lottie 3!.json\": {\n \"gles\": {\n \"frame_avg_us\": 179.71,\n \"frame_max_us\": 218.25,\n \"frame_min_us\": 141.17\n }\n },\n \"lottie(test)'!2.json\": {\n \"gles\": {\n \"frame_avg_us\": 179.71,\n \"frame_max_us\": 218.25,\n \"frame_min_us\": 141.17\n }\n },\n \"lottie1.json\": {\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}", 556cb93a386Sopenharmony_ci "[START_DIR]/[SWARM_OUT_DIR]/perf_abc123_1337000001.json" 557cb93a386Sopenharmony_ci ], 558cb93a386Sopenharmony_ci "infra_step": true, 559cb93a386Sopenharmony_ci "name": "write output JSON", 560cb93a386Sopenharmony_ci "~followup_annotations": [ 561cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@{@@@", 562cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gitHash\": \"abc123\",@@@", 563cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"key\": {@@@", 564cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"arch\": \"x86_64\",@@@", 565cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"bench_type\": \"tracing\",@@@", 566cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"compiler\": \"Clang\",@@@", 567cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"configuration\": \"Release\",@@@", 568cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"cpu_or_gpu\": \"CPU\",@@@", 569cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"cpu_or_gpu_value\": \"AVX2\",@@@", 570cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"extra_config\": \"SkottieTracing\",@@@", 571cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"model\": \"GCE\",@@@", 572cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"os\": \"Debian10\",@@@", 573cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"source_type\": \"skottie\"@@@", 574cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 575cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"renderer\": \"skottie\",@@@", 576cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"results\": {@@@", 577cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"lottie 3!.json\": {@@@", 578cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gles\": {@@@", 579cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_avg_us\": 179.71,@@@", 580cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_max_us\": 218.25,@@@", 581cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_min_us\": 141.17@@@", 582cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 583cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 584cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"lottie(test)'!2.json\": {@@@", 585cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gles\": {@@@", 586cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_avg_us\": 179.71,@@@", 587cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_max_us\": 218.25,@@@", 588cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_min_us\": 141.17@@@", 589cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 590cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 591cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"lottie1.json\": {@@@", 592cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"gles\": {@@@", 593cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_avg_us\": 179.71,@@@", 594cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_max_us\": 218.25,@@@", 595cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"frame_min_us\": 141.17@@@", 596cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 597cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ }@@@", 598cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ },@@@", 599cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"swarming_bot_id\": \"\",@@@", 600cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@ \"swarming_task_id\": \"\"@@@", 601cb93a386Sopenharmony_ci "@@@STEP_LOG_LINE@perf_abc123_1337000001.json@}@@@", 602cb93a386Sopenharmony_ci "@@@STEP_LOG_END@perf_abc123_1337000001.json@@@" 603cb93a386Sopenharmony_ci ] 604cb93a386Sopenharmony_ci }, 605cb93a386Sopenharmony_ci { 606cb93a386Sopenharmony_ci "name": "$result" 607cb93a386Sopenharmony_ci } 608cb93a386Sopenharmony_ci]