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