Skip to content

Conversation

@jschwe
Copy link
Member

@jschwe jschwe commented Nov 23, 2025

  • Factor out some common code
  • Create and use hdc_py library, used for enabling (and disabling) performance mode and screen timeout.
  • Add screenshots on test failure

The performance mode / screen timeout should hopefully help with the timeouts, or at least the screenshots might help show what's going wrong.

Testing: This is a CI modification for ohos. mach try

Previously enabling the performance mode helped
preventing time-outs in the speedometer test on hos devices.
This functionality was extracted into a seperate python library,
and we try and apply it to the scenario tests too.
Internally this use `hdc shell power-shell` to set the
- performance mode
- screen timeout
- explicit wakeup of the device

After the test / on exception, the changes performance mode is disabled again (hence the `with``.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Move some common setup code into a common function.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Take a screenshot on errors

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
@jschwe jschwe requested a review from yezhizhen November 23, 2025 17:18
@jschwe jschwe requested a review from sagudev as a code owner November 23, 2025 17:18
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Nov 23, 2025
@jschwe jschwe marked this pull request as draft November 23, 2025 17:18
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
@jschwe jschwe marked this pull request as ready for review November 23, 2025 17:40
Copy link
Member

@yezhizhen yezhizhen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice cleanup.

stop_servo()
sys.exit(1)
try:
with HarmonyDevicePerfMode():
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should enter PerfMode earlier; or even always on. No strong opinions.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More testing needed to come to a conclusive answer, but I think it might need to be after starting the app (like it is now), or alternatively add a step to somehow unlock the Lockscreen.

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Nov 24, 2025
@yezhizhen yezhizhen added the T-ohos Do a try run on OpenHarmony label Nov 24, 2025
@github-actions github-actions bot removed the T-ohos Do a try run on OpenHarmony label Nov 24, 2025
@github-actions
Copy link

🔨 Triggering try run (#19621857753) for OpenHarmony

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

🐰 Bencher Report

Branch40841/PR
TestbedHUAWEI Mate 60 Pro

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkDataMeasure (units) x 1e3Latencymilliseconds (ms)MemoryBytesscoreMeasure (units)
release/E2E/file:///parse_from_string.html/📈 view plot
⚠️ NO THRESHOLD
1.75 units x 1e3
release/E2E/https://www.google.com/JS/gc-heap/admin📈 view plot
⚠️ NO THRESHOLD
26,752.00
release/E2E/https://www.google.com/JS/gc-heap/decommitted📈 view plot
⚠️ NO THRESHOLD
409,600.00
release/E2E/https://www.google.com/JS/gc-heap/unused📈 view plot
⚠️ NO THRESHOLD
136,016.00
release/E2E/https://www.google.com/JS/gc-heap/used📈 view plot
⚠️ NO THRESHOLD
476,208.00
release/E2E/https://www.google.com/JS/malloc-heap📈 view plot
⚠️ NO THRESHOLD
5,053,071.00
release/E2E/https://www.google.com/JS/non-heap📈 view plot
⚠️ NO THRESHOLD
262,144.00
release/E2E/https://www.google.com/LayoutThread/box-tree📈 view plot
⚠️ NO THRESHOLD
108,744.00
release/E2E/https://www.google.com/LayoutThread/display-list📈 view plot
⚠️ NO THRESHOLD
0.00
release/E2E/https://www.google.com/LayoutThread/font-context📈 view plot
⚠️ NO THRESHOLD
9,288.00
release/E2E/https://www.google.com/LayoutThread/fragment-tree📈 view plot
⚠️ NO THRESHOLD
112.00
release/E2E/https://www.google.com/LayoutThread/stacking-context-tree📈 view plot
⚠️ NO THRESHOLD
14,080.00
release/E2E/https://www.google.com/LayoutThread/stylist📈 view plot
⚠️ NO THRESHOLD
5,504.00
release/E2E/https://www.google.com/Load📈 view plot
⚠️ NO THRESHOLD
608.96 ms
release/E2E/https://www.google.com/Resident📈 view plot
⚠️ NO THRESHOLD
182,992,076.00
release/E2E/https://www.google.com/image-cache📈 view plot
⚠️ NO THRESHOLD
2,328.00
release/E2E/https://www.google.com/resident-smaps📈 view plot
⚠️ NO THRESHOLD
185,411,993.00
release/E2E/https://www.servo.org/Load📈 view plot
⚠️ NO THRESHOLD
804.30 ms
release/E2E/https://www.servo.org/Resident📈 view plot
⚠️ NO THRESHOLD
373,424,128.00
release/E2E/https://www.servo.org/resident-smaps📈 view plot
⚠️ NO THRESHOLD
381,120,512.00
release/Speedometer/Charts-observable-plot📈 view plot
⚠️ NO THRESHOLD
740.44 ms
release/Speedometer/Charts-observable-plot/Dotted📈 view plot
⚠️ NO THRESHOLD
90.20 ms
release/Speedometer/Charts-observable-plot/Dotted/Async📈 view plot
⚠️ NO THRESHOLD
10.31 ms
release/Speedometer/Charts-observable-plot/Dotted/Sync📈 view plot
⚠️ NO THRESHOLD
79.89 ms
release/Speedometer/Charts-observable-plot/Stacked by 20📈 view plot
⚠️ NO THRESHOLD
362.91 ms
release/Speedometer/Charts-observable-plot/Stacked by 20/Async📈 view plot
⚠️ NO THRESHOLD
18.03 ms
release/Speedometer/Charts-observable-plot/Stacked by 20/Sync📈 view plot
⚠️ NO THRESHOLD
344.87 ms
release/Speedometer/Charts-observable-plot/Stacked by 6📈 view plot
⚠️ NO THRESHOLD
287.33 ms
release/Speedometer/Charts-observable-plot/Stacked by 6/Async📈 view plot
⚠️ NO THRESHOLD
9.20 ms
release/Speedometer/Charts-observable-plot/Stacked by 6/Sync📈 view plot
⚠️ NO THRESHOLD
278.14 ms
release/Speedometer/Geomean📈 view plot
⚠️ NO THRESHOLD
644.77 ms
release/Speedometer/Iteration-0-Total📈 view plot
⚠️ NO THRESHOLD
827.53 ms
release/Speedometer/Iteration-1-Total📈 view plot
⚠️ NO THRESHOLD
802.23 ms
release/Speedometer/Iteration-2-Total📈 view plot
⚠️ NO THRESHOLD
796.76 ms
release/Speedometer/Iteration-3-Total📈 view plot
⚠️ NO THRESHOLD
787.97 ms
release/Speedometer/Iteration-4-Total📈 view plot
⚠️ NO THRESHOLD
792.81 ms
release/Speedometer/Iteration-5-Total📈 view plot
⚠️ NO THRESHOLD
799.16 ms
release/Speedometer/Iteration-6-Total📈 view plot
⚠️ NO THRESHOLD
901.34 ms
release/Speedometer/Iteration-7-Total📈 view plot
⚠️ NO THRESHOLD
1,060.24 ms
release/Speedometer/Iteration-8-Total📈 view plot
⚠️ NO THRESHOLD
1,057.53 ms
release/Speedometer/Iteration-9-Total📈 view plot
⚠️ NO THRESHOLD
1,069.34 ms
release/Speedometer/Score📈 view plot
⚠️ NO THRESHOLD
1.57 units
release/Speedometer/TodoMVC-Angular📈 view plot
⚠️ NO THRESHOLD
922.23 ms
release/Speedometer/TodoMVC-Angular/Adding100Items📈 view plot
⚠️ NO THRESHOLD
441.54 ms
release/Speedometer/TodoMVC-Angular/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
32.01 ms
release/Speedometer/TodoMVC-Angular/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
409.53 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
296.51 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
35.48 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
261.03 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
184.19 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.09 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
177.09 ms
release/Speedometer/TodoMVC-JavaScript-ES5📈 view plot
⚠️ NO THRESHOLD
1,371.61 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items📈 view plot
⚠️ NO THRESHOLD
1,118.06 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
45.25 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
1,072.81 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
160.67 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
30.55 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
130.12 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
92.88 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.31 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
85.57 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack📈 view plot
⚠️ NO THRESHOLD
1,980.23 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items📈 view plot
⚠️ NO THRESHOLD
1,600.41 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
32.95 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
1,567.46 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
235.55 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
32.88 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
202.67 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
144.27 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
7.47 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
136.79 ms
release/Speedometer/TodoMVC-Preact📈 view plot
⚠️ NO THRESHOLD
152.74 ms
release/Speedometer/TodoMVC-Preact/Adding100Items📈 view plot
⚠️ NO THRESHOLD
75.50 ms
release/Speedometer/TodoMVC-Preact/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
67.76 ms
release/Speedometer/TodoMVC-Preact/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
7.74 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
62.06 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
50.47 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
11.59 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
15.17 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
9.64 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
5.54 ms
release/Speedometer/TodoMVC-React📈 view plot
⚠️ NO THRESHOLD
804.99 ms
release/Speedometer/TodoMVC-React-Redux📈 view plot
⚠️ NO THRESHOLD
1,011.48 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items📈 view plot
⚠️ NO THRESHOLD
323.79 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
32.94 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
290.84 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
446.65 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
36.13 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
410.52 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
241.04 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
8.00 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
233.04 ms
release/Speedometer/TodoMVC-React/Adding100Items📈 view plot
⚠️ NO THRESHOLD
282.85 ms
release/Speedometer/TodoMVC-React/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
34.01 ms
release/Speedometer/TodoMVC-React/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
248.84 ms
release/Speedometer/TodoMVC-React/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
333.18 ms
release/Speedometer/TodoMVC-React/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
35.59 ms
release/Speedometer/TodoMVC-React/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
297.59 ms
release/Speedometer/TodoMVC-React/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
188.95 ms
release/Speedometer/TodoMVC-React/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
8.04 ms
release/Speedometer/TodoMVC-React/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
180.90 ms
release/Speedometer/TodoMVC-Svelte📈 view plot
⚠️ NO THRESHOLD
132.20 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items📈 view plot
⚠️ NO THRESHOLD
71.97 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
55.74 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
16.23 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
44.98 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
36.71 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
8.27 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
15.25 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
10.73 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
4.51 ms
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link

✨ Try run (#19621857753) succeeded.

@yezhizhen yezhizhen added the T-ohos Do a try run on OpenHarmony label Nov 24, 2025
@github-actions github-actions bot removed the T-ohos Do a try run on OpenHarmony label Nov 24, 2025
@github-actions
Copy link

🔨 Triggering try run (#19622195132) for OpenHarmony

@github-actions
Copy link

✨ Try run (#19622195132) succeeded.

@jschwe jschwe added this pull request to the merge queue Nov 24, 2025
@servo-highfive servo-highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Nov 24, 2025
Merged via the queue into servo:main with commit 94f29a3 Nov 24, 2025
61 of 63 checks passed
@jschwe jschwe deleted the jschwender/try-improve-ci-stability branch November 24, 2025 05:55
@servo-highfive servo-highfive removed the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Nov 24, 2025
longvatrong111 added a commit to longvatrong111/servo that referenced this pull request Nov 30, 2025
…inux-wpt-2020)

{"fail_fast": false, "matrix": [{"name": "Linux (WPT)", "workflow": "linux", "wpt": true, "profile": "release", "unit_tests": false, "build_libservo": false, "bencher": false, "coverage": false, "build_args": "", "wpt_args": "", "number_of_wpt_chunks": 20}]}
longvatrong111 added a commit to longvatrong111/servo that referenced this pull request Dec 1, 2025
…inux-wpt-2020)

{"fail_fast": false, "matrix": [{"name": "Linux (WPT)", "workflow": "linux", "wpt": true, "profile": "release", "unit_tests": false, "build_libservo": false, "bencher": false, "coverage": false, "build_args": "", "wpt_args": "", "number_of_wpt_chunks": 20}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants