mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 11:07:56 +00:00
tests: use future::join instead of future::select (#2813)
* tests/av-store: use future::join instead of future::select * tests/backing: use future::join instead of future::select * tests/provisioner: use future::join instead of future::select * tests/av-dist: use future::join instead of future::select * tests/av-recovery: use future::join instead of future::select * tests/bridge: use future::join instead of future::select * tests/collator-protocol: use future::join instead of future::select * tests/stmt-dist: use future::join instead of future::select * fix tests
This commit is contained in:
@@ -1353,6 +1353,7 @@ mod tests {
|
||||
ActiveLeavesUpdate, FromOverseer, OverseerSignal, ActivatedLeaf,
|
||||
};
|
||||
use polkadot_node_primitives::{InvalidCandidate, BlockData};
|
||||
use polkadot_node_subsystem_test_helpers as test_helpers;
|
||||
use sp_keyring::Sr25519Keyring;
|
||||
use sp_application_crypto::AppKey;
|
||||
use sp_keystore::{CryptoStore, SyncCryptoStore};
|
||||
@@ -1466,14 +1467,16 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
struct TestHarness {
|
||||
virtual_overseer: polkadot_node_subsystem_test_helpers::TestSubsystemContextHandle<CandidateBackingMessage>,
|
||||
}
|
||||
type VirtualOverseer = test_helpers::TestSubsystemContextHandle<CandidateBackingMessage>;
|
||||
|
||||
fn test_harness<T: Future<Output=()>>(keystore: SyncCryptoStorePtr, test: impl FnOnce(TestHarness) -> T) {
|
||||
fn test_harness<T: Future<Output=VirtualOverseer>>(
|
||||
keystore: SyncCryptoStorePtr,
|
||||
test: impl FnOnce(VirtualOverseer) -> T,
|
||||
) {
|
||||
let pool = sp_core::testing::TaskExecutor::new();
|
||||
|
||||
let (context, virtual_overseer) = polkadot_node_subsystem_test_helpers::make_subsystem_context(pool.clone());
|
||||
let (context, virtual_overseer) =
|
||||
test_helpers::make_subsystem_context(pool.clone());
|
||||
|
||||
let subsystem = CandidateBackingSubsystem::new(
|
||||
pool.clone(),
|
||||
@@ -1481,13 +1484,16 @@ mod tests {
|
||||
Metrics(None),
|
||||
).run(context);
|
||||
|
||||
let test_fut = test(TestHarness {
|
||||
virtual_overseer,
|
||||
});
|
||||
let test_fut = test(virtual_overseer);
|
||||
|
||||
futures::pin_mut!(test_fut);
|
||||
futures::pin_mut!(subsystem);
|
||||
futures::executor::block_on(future::select(test_fut, subsystem));
|
||||
futures::executor::block_on(future::join(async move {
|
||||
let mut virtual_overseer = test_fut.await;
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::Conclude,
|
||||
)).await;
|
||||
}, subsystem));
|
||||
}
|
||||
|
||||
fn make_erasure_root(test: &TestState, pov: PoV) -> Hash {
|
||||
@@ -1529,7 +1535,7 @@ mod tests {
|
||||
|
||||
// Tests that the subsystem performs actions that are requied on startup.
|
||||
async fn test_startup(
|
||||
virtual_overseer: &mut polkadot_node_subsystem_test_helpers::TestSubsystemContextHandle<CandidateBackingMessage>,
|
||||
virtual_overseer: &mut VirtualOverseer,
|
||||
test_state: &TestState,
|
||||
) {
|
||||
// Start work on some new parent.
|
||||
@@ -1587,9 +1593,7 @@ mod tests {
|
||||
#[test]
|
||||
fn backing_second_works() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -1674,6 +1678,7 @@ mod tests {
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::ActiveLeaves(ActiveLeavesUpdate::stop_work(test_state.relay_parent)))
|
||||
).await;
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1681,9 +1686,7 @@ mod tests {
|
||||
#[test]
|
||||
fn backing_works() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -1820,15 +1823,14 @@ mod tests {
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::ActiveLeaves(ActiveLeavesUpdate::stop_work(test_state.relay_parent)))
|
||||
).await;
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn backing_works_while_validation_ongoing() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -1983,6 +1985,7 @@ mod tests {
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::ActiveLeaves(ActiveLeavesUpdate::stop_work(test_state.relay_parent)))
|
||||
).await;
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1991,9 +1994,7 @@ mod tests {
|
||||
#[test]
|
||||
fn backing_misbehavior_works() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -2137,6 +2138,7 @@ mod tests {
|
||||
).expect("signature must be valid");
|
||||
}
|
||||
);
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2145,9 +2147,7 @@ mod tests {
|
||||
#[test]
|
||||
fn backing_dont_second_invalid() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov_block_a = PoV {
|
||||
@@ -2268,6 +2268,7 @@ mod tests {
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::ActiveLeaves(ActiveLeavesUpdate::stop_work(test_state.relay_parent)))
|
||||
).await;
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2276,9 +2277,7 @@ mod tests {
|
||||
#[test]
|
||||
fn backing_second_after_first_fails_works() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -2392,6 +2391,7 @@ mod tests {
|
||||
assert_eq!(&*pov, &pov_to_second);
|
||||
}
|
||||
);
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2400,9 +2400,7 @@ mod tests {
|
||||
#[test]
|
||||
fn backing_works_after_failed_validation() {
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -2478,6 +2476,7 @@ mod tests {
|
||||
|
||||
virtual_overseer.send(FromOverseer::Communication{ msg }).await;
|
||||
assert_eq!(rx.await.unwrap().len(), 0);
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2491,9 +2490,7 @@ mod tests {
|
||||
collator: Some(Sr25519Keyring::Bob.public().into()),
|
||||
});
|
||||
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -2531,6 +2528,7 @@ mod tests {
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::ActiveLeaves(ActiveLeavesUpdate::stop_work(test_state.relay_parent)))
|
||||
).await;
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2542,9 +2540,7 @@ mod tests {
|
||||
collator: Some(Sr25519Keyring::Bob.public().into()),
|
||||
});
|
||||
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -2587,6 +2583,7 @@ mod tests {
|
||||
virtual_overseer.send(FromOverseer::Signal(
|
||||
OverseerSignal::ActiveLeaves(ActiveLeavesUpdate::stop_work(test_state.relay_parent)))
|
||||
).await;
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2672,9 +2669,7 @@ mod tests {
|
||||
fn retry_works() {
|
||||
// sp_tracing::try_init_simple();
|
||||
let test_state = TestState::default();
|
||||
test_harness(test_state.keystore.clone(), |test_harness| async move {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
test_harness(test_state.keystore.clone(), |mut virtual_overseer| async move {
|
||||
test_startup(&mut virtual_overseer, &test_state).await;
|
||||
|
||||
let pov = PoV {
|
||||
@@ -2817,6 +2812,7 @@ mod tests {
|
||||
)
|
||||
) if pov == pov && &c == candidate.descriptor()
|
||||
);
|
||||
virtual_overseer
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user