Struct proptest::test_runner::Config[][src]

pub struct Config {
    pub cases: u32,
    pub max_local_rejects: u32,
    pub max_global_rejects: u32,
    pub max_flat_map_regens: u32,
    pub failure_persistence: Option<Box<FailurePersistence>>,
    pub source_file: Option<&'static str>,
    pub test_name: Option<&'static str>,
    pub fork: bool,
    pub timeout: u32,
    // some fields omitted
}

Configuration for how a proptest test should be run.

Fields

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.

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.

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.

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 Flattens.

The default is 1_000_000, which can be overridden by setting the PROPTEST_MAX_FLAT_MAP_REGENS environment variable.

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.

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.

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!().

If true, tests are run in a subprocess.

Forking allows proptest to work with tests which may fail by aborting the process, causing a segmentation fault, etc, but can be a lot slower in certain environments or when running a very large number of tests.

For forking to work correctly, both the Strategy and the content of the test case itself must be deterministic.

This requires the "fork" feature, enabled by default.

The default is false, which can be overridden by setting the PROPTEST_FORK environment variable.

If non-zero, tests are run in a subprocess and each generated case fails if it takes longer than this number of milliseconds.

This implicitly enables forking, even if the fork field is false.

The type here is plain u32 (rather than Option<std::time::Duration>) for the sake of ergonomics.

This requires the "timeout" feature, enabled by default.

The default is 0 (i.e., no timeout), which can be overridden by setting the PROPTEST_TIMEOUT environment variable.

Methods

impl Config
[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() }
);

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() }
);

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() }
);

Return whether this configuration implies forking.

This method exists even if the "fork" feature is disabled, in which case it simply returns false.

Returns the configured timeout.

This method exists even if the "timeout" feature is disabled, in which case it simply returns 0.

Trait Implementations

impl Clone for Config
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for Config
[src]

Formats the value using the given formatter. Read more

impl PartialEq for Config
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Default for Config
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl Send for Config

impl Sync for Config