mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 15:11:02 +00:00
use own timeout in tests instead of smol-timeout (#1618)
This commit is contained in:
Generated
+4
-16
@@ -4371,18 +4371,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pin-project"
|
||||
version = "0.4.22"
|
||||
version = "0.4.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
|
||||
checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
|
||||
dependencies = [
|
||||
"pin-project-internal",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-internal"
|
||||
version = "0.4.22"
|
||||
version = "0.4.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
|
||||
checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
|
||||
dependencies = [
|
||||
"proc-macro2 1.0.18",
|
||||
"quote 1.0.7",
|
||||
@@ -4448,7 +4448,6 @@ dependencies = [
|
||||
"polkadot-primitives",
|
||||
"sc-network",
|
||||
"smol 0.3.3",
|
||||
"smol-timeout",
|
||||
"sp-core",
|
||||
"streamunordered",
|
||||
]
|
||||
@@ -4474,7 +4473,6 @@ dependencies = [
|
||||
"polkadot-primitives",
|
||||
"sc-keystore",
|
||||
"smallvec 1.4.1",
|
||||
"smol-timeout",
|
||||
"sp-core",
|
||||
"sp-keyring",
|
||||
"streamunordered",
|
||||
@@ -7600,16 +7598,6 @@ dependencies = [
|
||||
"num_cpus",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "smol-timeout"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "024818c1f00b80e8171ddcfcee33860134293aa3aced60c9cbd7a5a2d41db392"
|
||||
dependencies = [
|
||||
"pin-project",
|
||||
"smol 0.1.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "snow"
|
||||
version = "0.7.1"
|
||||
|
||||
@@ -25,7 +25,6 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master",
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
parking_lot = "0.11.0"
|
||||
futures-timer = "3.0.2"
|
||||
smol-timeout = "0.1.0"
|
||||
env_logger = "0.7.1"
|
||||
assert_matches = "1.3.0"
|
||||
smallvec = "1"
|
||||
|
||||
@@ -22,13 +22,12 @@ use polkadot_primitives::v1::{
|
||||
GroupRotationInfo, HeadData, PersistedValidationData, OccupiedCore,
|
||||
PoV, ScheduledCore, ValidatorPair,
|
||||
};
|
||||
use polkadot_subsystem_testhelpers as test_helpers;
|
||||
use polkadot_subsystem_testhelpers::{self as test_helpers, TimeoutExt};
|
||||
use polkadot_node_network_protocol::ObservedRole;
|
||||
|
||||
use futures::{executor, future, Future};
|
||||
use futures_timer::Delay;
|
||||
use smallvec::smallvec;
|
||||
use smol_timeout::TimeoutExt;
|
||||
use std::time::Duration;
|
||||
|
||||
macro_rules! view {
|
||||
|
||||
@@ -24,6 +24,5 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
parking_lot = "0.11.0"
|
||||
maplit = "1.0.2"
|
||||
smol = "0.3.3"
|
||||
smol-timeout = "0.1.0"
|
||||
env_logger = "0.7.1"
|
||||
assert_matches = "1.3.0"
|
||||
|
||||
@@ -611,8 +611,7 @@ mod test {
|
||||
use futures::executor;
|
||||
use maplit::hashmap;
|
||||
use polkadot_primitives::v1::{Signed, ValidatorPair, AvailabilityBitfield};
|
||||
use polkadot_node_subsystem_test_helpers::make_subsystem_context;
|
||||
use smol_timeout::TimeoutExt;
|
||||
use polkadot_node_subsystem_test_helpers::{make_subsystem_context, TimeoutExt};
|
||||
use sp_core::crypto::Pair;
|
||||
use std::time::Duration;
|
||||
use assert_matches::assert_matches;
|
||||
|
||||
@@ -13,7 +13,7 @@ futures-timer = "3.0.2"
|
||||
log = "0.4.8"
|
||||
parity-scale-codec = "1.3.4"
|
||||
parking_lot = "0.10.0"
|
||||
pin-project = "0.4.22"
|
||||
pin-project = "0.4.23"
|
||||
polkadot-node-primitives = { path = "../primitives" }
|
||||
polkadot-node-subsystem = { path = "../subsystem" }
|
||||
polkadot-primitives = { path = "../../primitives" }
|
||||
|
||||
@@ -24,6 +24,7 @@ use futures::poll;
|
||||
use futures::prelude::*;
|
||||
use futures_timer::Delay;
|
||||
use parking_lot::Mutex;
|
||||
use pin_project::pin_project;
|
||||
use sp_core::{testing::TaskExecutor, traits::SpawnNamed};
|
||||
|
||||
use std::convert::Infallible;
|
||||
@@ -286,3 +287,45 @@ pub fn subsystem_test_harness<M, OverseerFactory, Overseer, TestFactory, Test>(
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// A future that wraps another future with a `Delay` allowing for time-limited futures.
|
||||
#[pin_project]
|
||||
pub struct Timeout<F: Future> {
|
||||
#[pin]
|
||||
future: F,
|
||||
#[pin]
|
||||
delay: Delay,
|
||||
}
|
||||
|
||||
/// Extends `Future` to allow time-limited futures.
|
||||
pub trait TimeoutExt: Future {
|
||||
fn timeout(self, duration: Duration) -> Timeout<Self>
|
||||
where
|
||||
Self: Sized,
|
||||
{
|
||||
Timeout {
|
||||
future: self,
|
||||
delay: Delay::new(duration),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<F: Future> TimeoutExt for F {}
|
||||
|
||||
impl<F: Future> Future for Timeout<F> {
|
||||
type Output = Option<F::Output>;
|
||||
|
||||
fn poll(self: Pin<&mut Self>, ctx: &mut Context) -> Poll<Self::Output> {
|
||||
let this = self.project();
|
||||
|
||||
if this.delay.poll(ctx).is_ready() {
|
||||
return Poll::Ready(None);
|
||||
}
|
||||
|
||||
if let Poll::Ready(output) = this.future.poll(ctx) {
|
||||
return Poll::Ready(Some(output));
|
||||
}
|
||||
|
||||
Poll::Pending
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user