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