From 49b9e56d5cd372d708bafd0462b0c8783eef84e2 Mon Sep 17 00:00:00 2001 From: Andronik Ordian Date: Mon, 17 Aug 2020 15:03:03 +0200 Subject: [PATCH 1/2] overseer: add a test for CollationGeneration --- node/overseer/src/lib.rs | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/node/overseer/src/lib.rs b/node/overseer/src/lib.rs index f37a398df470..d83e6543b1f4 100644 --- a/node/overseer/src/lib.rs +++ b/node/overseer/src/lib.rs @@ -1087,12 +1087,14 @@ mod tests { use std::sync::atomic; use futures::{executor, pin_mut, select, channel::mpsc, FutureExt}; - use polkadot_primitives::v1::{BlockData, PoV}; + use polkadot_primitives::v1::{BlockData, CollatorPair, PoV}; use polkadot_subsystem::DummySubsystem; use polkadot_subsystem::messages::RuntimeApiRequest; - + use polkadot_node_primitives::{Collation, CollationGenerationConfig}; use polkadot_node_network_protocol::{PeerId, ReputationChange, NetworkBridgeEvent}; + use sp_core::crypto::Pair as _; + use super::*; @@ -1250,7 +1252,6 @@ mod tests { assert_eq!(s1_results, (0..10).collect::>()); }); } - // Spawn a subsystem that immediately exits. // // Should immediately conclude the overseer itself with an error. @@ -1591,6 +1592,8 @@ mod tests { C: SubsystemContext, M: Send, { + type Metrics = (); + fn start(self, mut ctx: C) -> SpawnedSubsystem { SpawnedSubsystem { name: "counter-subsystem", @@ -1639,6 +1642,25 @@ mod tests { ChainApiMessage::FinalizedBlockNumber(sender) } + fn test_collator_generation_msg() -> CollationGenerationMessage { + CollationGenerationMessage::Initialize(CollationGenerationConfig { + key: CollatorPair::generate().0, + collator: Box::new(|_, _| Box::new(TestCollator)), + para_id: Default::default(), + }) + } + struct TestCollator; + + impl Future for TestCollator { + type Output = Collation; + + fn poll(self: Pin<&mut Self>, _cx: &mut futures::task::Context) -> Poll { + panic!("at the Disco") + } + } + + impl Unpin for TestCollator {} + fn test_collator_protocol_msg() -> CollatorProtocolMessage { CollatorProtocolMessage::CollateOn(Default::default()) } @@ -1702,6 +1724,7 @@ mod tests { candidate_validation: subsystem.clone(), candidate_backing: subsystem.clone(), candidate_selection: subsystem.clone(), + collation_generation: subsystem.clone(), collator_protocol: subsystem.clone(), statement_distribution: subsystem.clone(), availability_distribution: subsystem.clone(), @@ -1717,6 +1740,7 @@ mod tests { let (overseer, mut handler) = Overseer::new( vec![], all_subsystems, + None, spawner, ).unwrap(); let overseer_fut = overseer.run().fuse(); @@ -1735,6 +1759,7 @@ mod tests { handler.send_msg(AllMessages::CandidateValidation(test_candidate_validation_msg())).await.unwrap(); handler.send_msg(AllMessages::CandidateBacking(test_candidate_backing_msg())).await.unwrap(); handler.send_msg(AllMessages::CandidateSelection(test_candidate_selection_msg())).await.unwrap(); + handler.send_msg(AllMessages::CollationGeneration(test_collator_generation_msg())).await.unwrap(); handler.send_msg(AllMessages::CollatorProtocol(test_collator_protocol_msg())).await.unwrap(); handler.send_msg(AllMessages::StatementDistribution(test_statement_distribution_msg())).await.unwrap(); handler.send_msg(AllMessages::AvailabilityDistribution(test_availability_distribution_msg())).await.unwrap(); @@ -1752,7 +1777,7 @@ mod tests { select! { res = overseer_fut => { - const NUM_SUBSYSTEMS: usize = 14; + const NUM_SUBSYSTEMS: usize = 15; assert_eq!(stop_signals_received.load(atomic::Ordering::SeqCst), NUM_SUBSYSTEMS); // x2 because of broadcast_signal on startup From 4087494353c8ada7fb2eced0afac64fe8bd3ccee Mon Sep 17 00:00:00 2001 From: Andronik Ordian Date: Mon, 17 Aug 2020 17:49:08 +0200 Subject: [PATCH 2/2] fix build --- Cargo.lock | 6 +++--- node/overseer/src/lib.rs | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2159abc16a57..0e8c4f8d04c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8562,13 +8562,13 @@ dependencies = [ [[package]] name = "substrate-wasm-builder-runner" version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" +source = "git+https://github.com/paritytech/substrate#488b7c7286d4ca9cedd047a5e2c2381736a3f088" [[package]] name = "substrate-wasm-builder-runner" version = "1.0.6" -source = "git+https://github.com/paritytech/substrate#488b7c7286d4ca9cedd047a5e2c2381736a3f088" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" [[package]] name = "subtle" diff --git a/node/overseer/src/lib.rs b/node/overseer/src/lib.rs index d83e6543b1f4..452ab1f4b6e7 100644 --- a/node/overseer/src/lib.rs +++ b/node/overseer/src/lib.rs @@ -1592,8 +1592,6 @@ mod tests { C: SubsystemContext, M: Send, { - type Metrics = (); - fn start(self, mut ctx: C) -> SpawnedSubsystem { SpawnedSubsystem { name: "counter-subsystem", @@ -1740,7 +1738,6 @@ mod tests { let (overseer, mut handler) = Overseer::new( vec![], all_subsystems, - None, spawner, ).unwrap(); let overseer_fut = overseer.run().fuse();