1 //! Enums denoting options for test execution. 2 3 /// Number of times to run a benchmarked function 4 #[derive(Clone, PartialEq, Eq)] 5 pub enum BenchMode { 6 Auto, 7 Single, 8 } 9 10 /// Whether test is expected to panic or not 11 #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] 12 pub enum ShouldPanic { 13 No, 14 Yes, 15 YesWithMessage(&'static str), 16 } 17 18 /// Whether should console output be colored or not 19 #[derive(Copy, Clone, Default, Debug)] 20 pub enum ColorConfig { 21 #[default] 22 AutoColor, 23 AlwaysColor, 24 NeverColor, 25 } 26 27 /// Format of the test results output 28 #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)] 29 pub enum OutputFormat { 30 /// Verbose output 31 Pretty, 32 /// Quiet output 33 #[default] 34 Terse, 35 /// JSON output 36 Json, 37 /// JUnit output 38 Junit, 39 } 40 41 /// Whether ignored test should be run or not 42 #[derive(Copy, Clone, Debug, PartialEq, Eq)] 43 pub enum RunIgnored { 44 Yes, 45 No, 46 /// Run only ignored tests 47 Only, 48 } 49 50 #[derive(Clone, Copy)] 51 pub enum RunStrategy { 52 /// Runs the test in the current process, and sends the result back over the 53 /// supplied channel. 54 InProcess, 55 56 /// Spawns a subprocess to run the test, and sends the result back over the 57 /// supplied channel. Requires `argv[0]` to exist and point to the binary 58 /// that's currently running. 59 SpawnPrimary, 60 } 61 62 /// Options for the test run defined by the caller (instead of CLI arguments). 63 /// In case we want to add other options as well, just add them in this struct. 64 #[derive(Copy, Clone, Debug)] 65 pub struct Options { 66 pub display_output: bool, 67 pub panic_abort: bool, 68 } 69 70 impl Options { new() -> Options71 pub fn new() -> Options { 72 Options { display_output: false, panic_abort: false } 73 } 74 display_output(mut self, display_output: bool) -> Options75 pub fn display_output(mut self, display_output: bool) -> Options { 76 self.display_output = display_output; 77 self 78 } 79 panic_abort(mut self, panic_abort: bool) -> Options80 pub fn panic_abort(mut self, panic_abort: bool) -> Options { 81 self.panic_abort = panic_abort; 82 self 83 } 84 } 85