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