Report execution order ambiguities in tests
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## What problem does this solve or what need does it fill?
System execution order ambiguities are particularly dangerous in tests, as they lead to flakiness.
The `ReportExecutionOrderAmbiguities` resource however does not report its results when run inside of a test using manual `App.update` calls.
## What solution would you like?
Create a method on both `App` and `Stage` (post-stageless, just `Schedule`) that fetches execution order ambiguities and stores them in an object for inspection.
Then, use `dbg!(app.execution_order_ambiguities())` in your tests when ambiguous execution order is suspected.
## What alternative(s) have you considered?
Allow users to forbid execution order ambiguities and panic if any (local) ambiguities are detected.
This would also be useful, but not quite as flexible for this use case.
## Additional context
Any PR attempting this should be based off of ~~#2766~~ #4299, which massively improves this system.
Contributor guide
Research direction
Start from the execution-order ambiguity system and the ReportExecutionOrderAmbiguities resource, then review the changes in PR #4299 before touching App, Stage, or the post-stageless Schedule API. Verify how manual App.update calls expose ambiguity results and add coverage showing that execution_order_ambiguities() stores them for inspection in tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100