Skip to main content

tank_tests/
lib.rs

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}