test_collector_utils/
lib.rs1use std::future::Future;
2use std::pin::Pin;
3
4type AsyncFn = Box<dyn Fn() -> Pin<Box<dyn Future<Output=()>>>>;
5
6pub struct IntegrationTestMeta{
7 pub name: String,
8 pub sync_fn: Option<fn()>,
9 pub async_fn: Option<AsyncFn>,
10}
11
12pub trait IntegrationTestRunner {
13 fn block_on<F: Future>(&self, fut: F) -> F::Output;
14}
15
16impl IntegrationTestMeta {
17 pub fn for_sync_fn(name: String, function: fn()) -> IntegrationTestMeta {
18 IntegrationTestMeta {
19 name,
20 sync_fn: Some(function),
21 async_fn: None
22 }
23 }
24
25 pub fn for_async_fn(name: String, function: AsyncFn) -> IntegrationTestMeta {
26 IntegrationTestMeta {
27 name,
28 sync_fn: None,
29 async_fn: Some(function),
30 }
31 }
32}
33
34inventory::collect!(IntegrationTestMeta);