pub struct Builder {
pub seed: u64,
pub count: u64,
pub jobs: u16,
pub config: Config,
pub time_limit: Option<Duration>,
pub check: bool,
pub allow_system_thread: bool,
}
madsim
only.Expand description
Builds Madsim Runtime with custom configuration values.
Fields§
§seed: u64
The random seed for test.
count: u64
The number of tests.
jobs: u16
The number of jobs to run simultaneously.
config: Config
The configuration.
time_limit: Option<Duration>
The time limit for the test.
check: bool
Enable determinism check.
allow_system_thread: bool
Allow spawning system thread.
Implementations§
source§impl Builder
impl Builder
sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Create a new builder from the following environment variables:
-
MADSIM_TEST_SEED
: Set the random seed for test.By default, the seed is set to the seconds since the Unix epoch.
-
MADSIM_TEST_NUM
: Set the number of tests.The seed will increase by 1 for each test.
By default, the number is 1.
-
MADSIM_TEST_JOBS
: Set the number of jobs to run simultaneously.By default, the number of jobs is 1.
-
MADSIM_TEST_CONFIG
: Set the config file path.By default, tests will use the default configuration.
-
MADSIM_TEST_TIME_LIMIT
: Set the time limit for the test.The test will panic if time limit exceeded in the simulation.
By default, there is no time limit.
-
MADSIM_TEST_CHECK_DETERMINISM
: Enable determinism check.The test will be run at least twice with the same seed. If any non-determinism detected, it will panic as soon as possible.
By default, it is disabled.
-
MADSIM_ALLOW_SYSTEM_THREAD
: Allow spawning system thread.Spawning system thread may cause the test to be non-deterministic.
By default, it is disallowed.
Auto Trait Implementations§
impl Freeze for Builder
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.