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 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}