#[non_exhaustive]pub struct Config {
pub seed: u64,
pub maybe_lock_timeout: Duration,
pub check_named_locks_work_for: Option<Duration>,
pub check_addressed_locks_work_for: Option<Duration>,
}
Expand description
Configuration for a reord
-based test
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.seed: u64
The random seed used to choose which task to run
Changing this seed will give other task orderings, but leaving it the same should (if
lock tracking is correctly implemented by the application using Lock
) keep execution
reproducible.
maybe_lock_timeout: Duration
Timeout after which a maybe_lock
will be considered as having blocked on the lock
check_named_locks_work_for: Option<Duration>
If set to Some
, will allow two tasks to voluntarily collide on a named lock to validate
that locking is implemented correctly. It will then wait for the time indicated by this
setting, and if the next reord::point
has not been reached by then, assume the locking
worked properly and continue testing.
check_addressed_locks_work_for: Option<Duration>
If set to Some
, will allow two tasks to voluntarily collide on an addressed lock to
validate that locking is implemented correctly. It will then wait for the time indicated
by this setting, and if the next reord::point
has not been reached by then, assume the
locking worked properly and continue testing.
Implementations§
source§impl Config
impl Config
sourcepub fn with_random_seed() -> Config
pub fn with_random_seed() -> Config
Generate a configuration with the default parameters and a random seed
If you are running under a fuzzer, you should have the fuzzer generate your seed and pass
it to Config::from_seed
.