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