1mod aggregates;
2mod ambiguity;
3mod arrays1;
4mod arrays2;
5mod books;
6mod complex;
7mod conditions;
8mod enums;
9mod insane;
10mod interval;
11mod limits;
12mod math;
13mod metrics;
14mod multiple;
15mod operations;
16mod orders;
17mod other;
18mod readme;
19mod requests;
20mod shopping;
21mod simple;
22mod time;
23mod trade;
24mod transaction1;
25mod transaction2;
26mod user;
27
28pub use aggregates::*;
29pub use ambiguity::*;
30pub use arrays1::*;
31pub use arrays2::*;
32pub use books::*;
33pub use complex::*;
34pub use conditions::*;
35pub use enums::*;
36pub use insane::*;
37pub use interval::*;
38pub use limits::*;
39use log::LevelFilter;
40pub use math::*;
41pub use metrics::*;
42pub use multiple::*;
43pub use operations::*;
44pub use orders::*;
45pub use other::*;
46pub use readme::*;
47pub use requests::*;
48pub use shopping::*;
49pub use simple::*;
50use std::env;
51use tank::Connection;
52pub use time::*;
53pub use trade::*;
54pub use transaction1::*;
55pub use transaction2::*;
56pub use user::*;
57
58pub fn init_logs() {
59 let mut logger = env_logger::builder();
60 logger
61 .is_test(true)
62 .format_file(true)
63 .format_line_number(true);
64 if env::var("RUST_LOG").is_err() {
65 logger.filter_level(LevelFilter::Warn);
66 }
67 let _ = logger.try_init();
68}
69
70pub async fn execute_tests<C: Connection>(mut connection: C) {
71 macro_rules! do_test {
72 ($test_function:ident) => {
73 Box::pin($test_function(&mut connection)).await
74 };
75 }
76 do_test!(simple);
77 do_test!(trade_simple);
78 do_test!(trade_multiple);
79 do_test!(users);
80 do_test!(aggregates);
81 do_test!(books);
82 do_test!(complex);
83 do_test!(insane);
84 do_test!(limits);
85 #[cfg(not(feature = "disable-multiple-statements"))]
86 do_test!(multiple);
87 #[cfg(not(feature = "disable-intervals"))]
88 do_test!(interval);
89 #[cfg(not(feature = "disable-arrays"))]
90 do_test!(arrays1);
91 #[cfg(not(feature = "disable-arrays"))]
92 do_test!(arrays2);
93 #[cfg(not(feature = "disable-transactions"))]
94 do_test!(transaction1);
95 do_test!(transaction2);
96 do_test!(shopping);
97 do_test!(orders);
98 do_test!(times);
99 do_test!(conditions);
100 do_test!(readme).expect("Readme examples test did not succeed");
101 do_test!(operations).expect("Operations examples test did not succeed");
102 do_test!(advanced_operations).expect("Advanced operations examples test did not succeed");
103 do_test!(metrics);
104 do_test!(math);
105 do_test!(ambiguity);
106 do_test!(other);
107 do_test!(enums);
108 do_test!(requests);
109}
110
111#[macro_export]
112macro_rules! silent_logs {
113 ($($code:tt)+) => {{
114 let level = log::max_level();
115 log::set_max_level(log::LevelFilter::Off);
116 $($code)+
117 log::set_max_level(level);
118 }};
119}