Enum proptest::test_runner::FileFailurePersistence

source ·
pub enum FileFailurePersistence {
    Off,
    SourceParallel(&'static str),
    WithSource(&'static str),
    Direct(&'static str),
    // some variants omitted
}
Expand description

Describes how failing test cases are persisted.

Note that file names in this enum are &str rather than &Path since constant functions are not yet in Rust stable as of 2017-12-16.

In all cases, if a derived path references a directory which does not yet exist, proptest will attempt to create all necessary parent directories.

Variants§

§

Off

Completely disables persistence of failing test cases.

This is semantically equivalent to Direct("/dev/null") on Unix and Direct("NUL") on Windows (though it is internally handled by simply not doing any I/O).

§

SourceParallel(&'static str)

The path given to TestRunner::set_source_file() is parsed. The path is traversed up the directory tree until a directory containing a file named lib.rs or main.rs is found. A sibling to that directory with the name given by the string in this configuration is created, and a file with the same name and path relative to the source directory, but with the extension changed to .txt, is used.

For example, given a source path of /home/jsmith/code/project/src/foo/bar.rs and a configuration of SourceParallel("proptest-regressions") (the default), assuming the src directory has a lib.rs or main.rs, the resulting file would be /home/jsmith/code/project/proptest-regressions/foo/bar.txt.

If no lib.rs or main.rs can be found, a warning is printed and this behaves like WithSource.

If no source file has been configured, a warning is printed and this behaves like Off.

§

WithSource(&'static str)

The path given to TestRunner::set_source_file() is parsed. The extension of the path is changed to the string given in this configuration, and that filename is used.

For example, given a source path of /home/jsmith/code/project/src/foo/bar.rs and a configuration of WithSource("regressions"), the resulting path would be /home/jsmith/code/project/src/foo/bar.regressions.

§

Direct(&'static str)

The string given in this option is directly used as a file path without any further processing.

Trait Implementations§

source§

impl Clone for FileFailurePersistence

source§

fn clone(&self) -> FileFailurePersistence

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FileFailurePersistence

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for FileFailurePersistence

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl FailurePersistence for FileFailurePersistence

source§

fn load_persisted_failures2( &self, source_file: Option<&'static str> ) -> Vec<PersistedSeed>

Supply seeds associated with the given source_file that may be used by a TestRunner’s random number generator in order to consistently recreate a previously-failing Strategy-provided value. Read more
source§

fn save_persisted_failure2( &mut self, source_file: Option<&'static str>, seed: PersistedSeed, shrunken_value: &dyn Debug )

Store a new failure-generating seed associated with the given source_file. Read more
source§

fn box_clone(&self) -> Box<dyn FailurePersistence>

Delegate method for producing a trait object usable with Clone
source§

fn eq(&self, other: &dyn FailurePersistence) -> bool

Equality testing delegate required due to constraints of trait objects.
source§

fn as_any(&self) -> &dyn Any

Assistant method for trait object comparison.
source§

fn load_persisted_failures( &self, source_file: Option<&'static str> ) -> Vec<[u8; 16]>

👎Deprecated
Use load_persisted_failures2 instead. Read more
source§

fn save_persisted_failure( &mut self, source_file: Option<&'static str>, seed: [u8; 16], shrunken_value: &dyn Debug )

👎Deprecated
Use save_persisted_failures2 instead. Read more
source§

impl PartialEq for FileFailurePersistence

source§

fn eq(&self, other: &FileFailurePersistence) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for FileFailurePersistence

source§

impl StructuralPartialEq for FileFailurePersistence

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V