Skip to main content

tank_tests/
lib.rs

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}