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}