• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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