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