tank_tests/
lib.rs

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