Comments (1)
Thanks for sharing your idea!
Besides checking for determinism, we also want to locate the source as soon as possible when uncertainty occurs. Therefore, check_determinism
records the entire sequence of random states, and it immediately panics if it finds inconsistencies during the second run. This allows developers to roughly locate the uncertainty source through the backtrace. In comparison, only comparing function return values might miss some cases and doesn't quickly reveal problems. Moreover, this method won't work if the user's function does not return a random number, which I believe is more common in practice.
However, it would be nice to add return value check to the current check_determinism
.
from madsim.
Related Issues (20)
- How to deal with thread spawned outside of madsim simulation HOT 2
- include original crate's version HOT 11
- docs: more detailed explanation about how and why to patch deps
- feature: support timeout in tonic requests HOT 2
- feature request: support `btree_map` api for Builder
- Enhancing Determinism by Forking Processes
- Improving behaviour to failed socket address parsing
- wrong `tokio::runtime::Runtime::enter` implementation HOT 4
- panic if spawn when task drop HOT 2
- patch `tokio_stream` HOT 1
- Implement `tokio::task::AbortHandle::is_finished` HOT 2
- Tags are missing after release `v0.2.15` HOT 1
- `tokio::time::sleep(Duration::ZERO)` is not simulated properly HOT 1
- Creating multiple runtimes with the same seed yields different random values HOT 2
- unaligned pointer for rand HOT 1
- Allow toggling off the new-thread-spawned detector HOT 2
- support `tokio::runtime::Handle`
- How to retrieve madsim seed when the test case was canceled by cargo-nextest due to timeout HOT 1
- How to add support for a few more services like AWS DynamoDB and Google Cloud Spanner? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from madsim.