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