perf: speed up make tests with xdist and deterministic waits#2563
Merged
perf: speed up make tests with xdist and deterministic waits#2563
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request improves test execution efficiency by replacing real-time waits in several slow tests with deterministic synchronization, moving shard-safe tests onto
pytest-xdist, and isolating Redis/Dapr-sensitive files onto a serial lane that still runs automatically as part ofmake tests. Across three measured warm-cache runs after one warm-up run on the same machine,make testsaveraged 53.59 seconds before these changes and 14.34 seconds after them, reducing wall-clock time by 39.25 seconds (73.2%) and delivering about a 3.7x speedup.The change also trims unnecessary tracing fixture startup work in
tests/conftest.py, keeps overall test breadth intact, and updates CI so coverage is collected on a single Python version while the rest of the matrix uses the faster test path. Behaviorally,make coverageremains unchanged, tests markedserialstill run by default.