commit | 058683c45f4b066aa9fca0c9bc73e717b90981ca | [log] [tgz] |
---|---|---|
author | Noam Rosenthal <nrosenthal@chromium.org> | Mon Nov 18 21:13:22 2024 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Nov 18 21:13:22 2024 |
tree | d09a5de708bcf7cb3f476b1421f056504aad4ee7 | |
parent | 7794f19b3248158c21c34114a538a28436a0508c [diff] |
Deflake and speed up LoAF tests The main cause for flakiness in long-animation-frame tests was the fact that long animation frames can be caused by arbitrary system operations, unrelated to the ones created by the test, and those would generate noise that would make the tests believe that the entries are incorrect. The previous mitigation was to generate really long LoAFs (360ms), filter only really-long LoAFs, and also retry 10 times. However, this brittle approach had several issues: - In some cases there could be enough noise where this wouldn't filter it well enough. - If the implementation itself is flaky, the test would pass. - It makes the test very slow and CPU-consuming (a generated LoAF is a CPU spin). The new approach, is to mark the time during calls to `busy_wait`, and filter only the LoAFs that contain the actual `busy_wait` call. This filters out any LoAF that we didn't generate ourselves in the test. This also allows us to reduce the `busy_wait` time from 360ms to 120ms. Refactored some tests to call the utils `busy_wait` instead of rolling their own. Bug: 40263438 Bug: 41484738 Bug: 369956892 Bug: 336691003 Bug: 335003887 Change-Id: Idf3505aef54837f7d7200b0dc57dffdec7c748c6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6022841 Reviewed-by: Scott Haseley <shaseley@chromium.org> Commit-Queue: Noam Rosenthal <nrosenthal@chromium.org> Cr-Commit-Position: refs/heads/main@{#1384560}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.