Struct proptest::test_runner::Config [−][src]
Configuration for how a proptest test should be run.
Fields
cases: u32
The number of successful test cases that must execute for the test as a whole to pass.
This does not include implicitly-replayed persisted failing cases.
The default is 256, which can be overridden by setting the
PROPTEST_CASES
environment variable.
max_local_rejects: u32
The maximum number of individual inputs that may be rejected before the test as a whole aborts.
The default is 65536, which can be overridden by setting the
PROPTEST_MAX_LOCAL_REJECTS
environment variable.
max_global_rejects: u32
The maximum number of combined inputs that may be rejected before the test as a whole aborts.
The default is 1024, which can be overridden by setting the
PROPTEST_MAX_GLOBAL_REJECTS
environment variable.
max_flat_map_regens: u32
The maximum number of times all Flatten
combinators will attempt to
regenerate values. This puts a limit on the worst-case exponential
explosion that can happen with nested Flatten
s.
The default is 1_000_000, which can be overridden by setting the
PROPTEST_MAX_FLAT_MAP_REGENS
environment variable.
failure_persistence: Option<Box<dyn FailurePersistence>>
Indicates whether and how to persist failed test results.
When compiling with "std" feature (i.e. the standard library is available), the default
is Some(Box::new(FileFailurePersistence::SourceParallel("proptest-regressions")))
.
Without the standard library, the default is None
, and no persistence occurs.
See the docs of FileFailurePersistence
and MapFailurePersistence
for more information.
The default cannot currently be overridden by an environment variable.
source_file: Option<&'static str>
File location of the current test, relevant for persistence and debugging.
Note the use of &str
rather than Path
to be compatible with
#![no_std]
use cases where Path
is unavailable.
See the docs of FileFailurePersistence
for more information on how it may be used for persistence.
test_name: Option<&'static str>
The fully-qualified name of the test being run, as would be passed to the test executable to run just that test.
This must be set if fork
is true
. Otherwise, it is unused. It is
automatically set by proptest!
.
This must include the crate name at the beginning, as produced by
module_path!()
.
max_shrink_iters: u32
Give up on shrinking if more than this number of iterations of the test code are run.
Setting this to std::u32::MAX
causes the actual limit to be four
times the number of test cases.
Setting this value to 0
disables shrinking altogether.
Note that the type of this field will change in a future version of proptest to better accommodate its special values.
The default is std::u32::MAX
, which can be overridden by setting the
PROPTEST_MAX_SHRINK_ITERS
environment variable.
result_cache: fn() -> Box<dyn ResultCache>
A function to create new result caches.
The default is to do no caching. The easiest way to enable caching is
to set this field to basic_result_cache
(though that is currently
only available with the std
feature).
This is useful for strategies which have a tendency to produce duplicate values, or for tests where shrinking can take a very long time due to exploring the same output multiple times.
When caching is enabled, generated values themselves are not stored, so this does not pose a risk of memory exhaustion for large test inputs unless using extraordinarily large test case counts.
Caching incurs its own overhead, and may very well make your test run more slowly.
rng_algorithm: RngAlgorithm
The RNG algorithm to use when not using a user-provided RNG.
The default is RngAlgorithm::default()
, which can be overridden by
setting the PROPTEST_RNG_ALGORITHM
environment variable to one of the following:
xs
—RngAlgorithm::XorShift
cc
—RngAlgorithm::ChaCha
Implementations
impl Config
[src]
pub fn with_cases(cases: u32) -> Self
[src]
Constructs a Config
only differing from the default()
in the
number of test cases required to pass the test successfully.
This is simply a more concise alternative to using field-record update syntax:
assert_eq!( Config::with_cases(42), Config { cases: 42, .. Config::default() } );
pub fn with_source_file(source_file: &'static str) -> Self
[src]
Constructs a Config
only differing from the default()
in the
source_file of the present test.
This is simply a more concise alternative to using field-record update syntax:
assert_eq!( Config::with_source_file("computer/question"), Config { source_file: Some("computer/question"), .. Config::default() } );
pub fn clone_with_source_file(&self, source_file: &'static str) -> Self
[src]
Constructs a Config
only differing from the provided Config instance, self
,
in the source_file of the present test.
This is simply a more concise alternative to using field-record update syntax:
let a = Config::with_source_file("computer/question"); let b = a.clone_with_source_file("answer/42"); assert_eq!( a, Config { source_file: Some("computer/question"), .. Config::default() } ); assert_eq!( b, Config { source_file: Some("answer/42"), .. Config::default() } );
pub fn fork(&self) -> bool
[src]
Return whether this configuration implies forking.
This method exists even if the "fork" feature is disabled, in which case it simply returns false.
pub fn timeout(&self) -> u32
[src]
Returns the configured timeout.
This method exists even if the "timeout" feature is disabled, in which case it simply returns 0.
pub fn max_shrink_iters(&self) -> u32
[src]
Returns the configured limit on shrinking iterations.
This takes into account the special "automatic" behaviour.
Trait Implementations
impl Clone for Config
[src]
fn clone(&self) -> Config
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Config
[src]
impl Default for Config
[src]
impl PartialEq<Config> for Config
[src]
impl StructuralPartialEq for Config
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,