| //! Enums denoting options for test execution. |
| |
| /// Number of times to run a benchmarked function |
| #[derive(Clone, PartialEq, Eq)] |
| pub enum BenchMode { |
| Auto, |
| Single, |
| } |
| |
| /// Whether test is expected to panic or not |
| #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] |
| pub enum ShouldPanic { |
| No, |
| Yes, |
| YesWithMessage(&'static str), |
| } |
| |
| /// Whether should console output be colored or not |
| #[derive(Copy, Clone, Default, Debug)] |
| pub enum ColorConfig { |
| #[default] |
| AutoColor, |
| AlwaysColor, |
| NeverColor, |
| } |
| |
| /// Format of the test results output |
| #[derive(Copy, Clone, Debug, Default, PartialEq, Eq)] |
| pub enum OutputFormat { |
| /// Verbose output |
| Pretty, |
| /// Quiet output |
| #[default] |
| Terse, |
| /// JSON output |
| Json, |
| /// JUnit output |
| Junit, |
| } |
| |
| /// Whether ignored test should be run or not |
| #[derive(Copy, Clone, Debug, PartialEq, Eq)] |
| pub enum RunIgnored { |
| Yes, |
| No, |
| /// Run only ignored tests |
| Only, |
| } |
| |
| #[derive(Clone, Copy)] |
| pub enum RunStrategy { |
| /// Runs the test in the current process, and sends the result back over the |
| /// supplied channel. |
| InProcess, |
| |
| /// Spawns a subprocess to run the test, and sends the result back over the |
| /// supplied channel. Requires `argv[0]` to exist and point to the binary |
| /// that's currently running. |
| SpawnPrimary, |
| } |
| |
| /// Options for the test run defined by the caller (instead of CLI arguments). |
| /// In case we want to add other options as well, just add them in this struct. |
| #[derive(Copy, Clone, Debug)] |
| pub struct Options { |
| pub display_output: bool, |
| pub panic_abort: bool, |
| } |
| |
| impl Options { |
| pub fn new() -> Options { |
| Options { display_output: false, panic_abort: false } |
| } |
| |
| pub fn display_output(mut self, display_output: bool) -> Options { |
| self.display_output = display_output; |
| self |
| } |
| |
| pub fn panic_abort(mut self, panic_abort: bool) -> Options { |
| self.panic_abort = panic_abort; |
| self |
| } |
| } |