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