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 of the source file under test 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)
Failures are persisted in a file with the same path as the source file under test, but the extension is changed to the string given in this configuration.
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
impl Clone for FileFailurePersistence
source§fn clone(&self) -> FileFailurePersistence
fn clone(&self) -> FileFailurePersistence
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for FileFailurePersistence
impl Debug for FileFailurePersistence
source§impl Default for FileFailurePersistence
impl Default for FileFailurePersistence
source§impl FailurePersistence for FileFailurePersistence
impl FailurePersistence for FileFailurePersistence
source§fn load_persisted_failures2(
&self,
source_file: Option<&'static str>,
) -> Vec<PersistedSeed>
fn load_persisted_failures2( &self, source_file: Option<&'static str>, ) -> Vec<PersistedSeed>
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 moresource§fn save_persisted_failure2(
&mut self,
source_file: Option<&'static str>,
seed: PersistedSeed,
shrunken_value: &dyn Debug,
)
fn save_persisted_failure2( &mut self, source_file: Option<&'static str>, seed: PersistedSeed, shrunken_value: &dyn Debug, )
source_file
. Read moresource§fn box_clone(&self) -> Box<dyn FailurePersistence>
fn box_clone(&self) -> Box<dyn FailurePersistence>
Clone
source§fn eq(&self, other: &dyn FailurePersistence) -> bool
fn eq(&self, other: &dyn FailurePersistence) -> bool
source§impl PartialEq for FileFailurePersistence
impl PartialEq for FileFailurePersistence
impl Copy for FileFailurePersistence
impl StructuralPartialEq for FileFailurePersistence
Auto Trait Implementations§
impl Freeze for FileFailurePersistence
impl RefUnwindSafe for FileFailurePersistence
impl Send for FileFailurePersistence
impl Sync for FileFailurePersistence
impl Unpin for FileFailurePersistence
impl UnwindSafe for FileFailurePersistence
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)