Make sure that the start_collator future implements Send (#915)

Co-authored-by: Gav Wood <gavin@parity.io>
This commit is contained in:
Bastian Köcher
2020-03-21 15:48:46 +01:00
committed by GitHub
parent 965b74beb3
commit 1f7df4528f
+30 -1
View File
@@ -343,7 +343,8 @@ where
P::ParachainContext: Send + 'static,
<P::ParachainContext as ParachainContext>::ProduceCandidate: Send,
{
match (config.expect_chain_spec().is_kusama(), config.roles) {
let is_kusama = config.expect_chain_spec().is_kusama();
match (is_kusama, config.roles) {
(_, Roles::LIGHT) => return Err(
polkadot_service::Error::Other("light nodes are unsupported as collator".into())
).into(),
@@ -435,4 +436,32 @@ mod tests {
))
}
}
struct BuildDummyParachainContext;
impl BuildParachainContext for BuildDummyParachainContext {
type ParachainContext = DummyParachainContext;
fn build<B, E, R, SP, Extrinsic>(
self,
_: Arc<PolkadotClient<B, E, R>>,
_: SP,
_: impl Network + Clone + 'static,
) -> Result<Self::ParachainContext, ()> {
Ok(DummyParachainContext)
}
}
// Make sure that the future returned by `start_collator` implementes `Send`.
#[test]
fn start_collator_is_send() {
fn check_send<T: Send>(_: T) {}
check_send(start_collator(
BuildDummyParachainContext,
0.into(),
Arc::new(CollatorPair::generate().0),
Default::default(),
));
}
}