mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 08:51:09 +00:00
Upgrade tokio to 1.22.0 and replace async-std with tokio (#12646)
* Replace deprecated libp2p feature specs with correct ones * Bump tokio to 1.21.2 * Replace async-std libp2p primitives with tokio ones * minor: rustfmt * Fix TestNet to run initialization in the tokio context * Convert telemetry test from async-std to tokio * Convert notifications tests from async-std to tokio * Convert chain sync tests from async-std to tokio * Ditch async-std completely * Make executor mandatory * Bump tokio to 1.22.0 * minor: rustfmt * Explicitly use tokio runtime in tests * Move more tests to explicit tokio runtime * Explicitly set multithreaded runtime in tokio test * minor: rustfmt * minor: fix comment * Replace async-std with tokio in MMR tests
This commit is contained in:
@@ -633,7 +633,6 @@ where
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use futures::executor;
|
||||
use parking_lot::Mutex;
|
||||
use sc_block_builder::BlockBuilderProvider;
|
||||
use sc_client_api::BlockchainEvents;
|
||||
@@ -659,6 +658,7 @@ mod tests {
|
||||
runtime::{Header, H256},
|
||||
TestClient,
|
||||
};
|
||||
use tokio::runtime::{Handle, Runtime};
|
||||
|
||||
const SLOT_DURATION_MS: u64 = 1000;
|
||||
|
||||
@@ -716,11 +716,20 @@ mod tests {
|
||||
>;
|
||||
type AuraPeer = Peer<(), PeersClient>;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct AuraTestNet {
|
||||
rt_handle: Handle,
|
||||
peers: Vec<AuraPeer>,
|
||||
}
|
||||
|
||||
impl WithRuntime for AuraTestNet {
|
||||
fn with_runtime(rt_handle: Handle) -> Self {
|
||||
AuraTestNet { rt_handle, peers: Vec::new() }
|
||||
}
|
||||
fn rt_handle(&self) -> &Handle {
|
||||
&self.rt_handle
|
||||
}
|
||||
}
|
||||
|
||||
impl TestNetFactory for AuraTestNet {
|
||||
type Verifier = AuraVerifier;
|
||||
type PeerData = ();
|
||||
@@ -772,7 +781,8 @@ mod tests {
|
||||
#[test]
|
||||
fn authoring_blocks() {
|
||||
sp_tracing::try_init_simple();
|
||||
let net = AuraTestNet::new(3);
|
||||
let runtime = Runtime::new().unwrap();
|
||||
let net = AuraTestNet::new(runtime.handle().clone(), 3);
|
||||
|
||||
let peers = &[(0, Keyring::Alice), (1, Keyring::Bob), (2, Keyring::Charlie)];
|
||||
|
||||
@@ -838,7 +848,7 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
executor::block_on(future::select(
|
||||
runtime.block_on(future::select(
|
||||
future::poll_fn(move |cx| {
|
||||
net.lock().poll(cx);
|
||||
Poll::<()>::Pending
|
||||
@@ -865,7 +875,8 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn current_node_authority_should_claim_slot() {
|
||||
let net = AuraTestNet::new(4);
|
||||
let runtime = Runtime::new().unwrap();
|
||||
let net = AuraTestNet::new(runtime.handle().clone(), 4);
|
||||
|
||||
let mut authorities = vec![
|
||||
Keyring::Alice.public().into(),
|
||||
@@ -909,19 +920,20 @@ mod tests {
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
);
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 0.into(), &authorities)).is_none());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 1.into(), &authorities)).is_none());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 2.into(), &authorities)).is_none());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 3.into(), &authorities)).is_some());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 4.into(), &authorities)).is_none());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 5.into(), &authorities)).is_none());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 6.into(), &authorities)).is_none());
|
||||
assert!(executor::block_on(worker.claim_slot(&head, 7.into(), &authorities)).is_some());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 0.into(), &authorities)).is_none());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 1.into(), &authorities)).is_none());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 2.into(), &authorities)).is_none());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 3.into(), &authorities)).is_some());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 4.into(), &authorities)).is_none());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 5.into(), &authorities)).is_none());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 6.into(), &authorities)).is_none());
|
||||
assert!(runtime.block_on(worker.claim_slot(&head, 7.into(), &authorities)).is_some());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn on_slot_returns_correct_block() {
|
||||
let net = AuraTestNet::new(4);
|
||||
let runtime = Runtime::new().unwrap();
|
||||
let net = AuraTestNet::new(runtime.handle().clone(), 4);
|
||||
|
||||
let keystore_path = tempfile::tempdir().expect("Creates keystore path");
|
||||
let keystore = LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore.");
|
||||
@@ -957,15 +969,16 @@ mod tests {
|
||||
|
||||
let head = client.header(&BlockId::Number(0)).unwrap().unwrap();
|
||||
|
||||
let res = executor::block_on(worker.on_slot(SlotInfo {
|
||||
slot: 0.into(),
|
||||
ends_at: Instant::now() + Duration::from_secs(100),
|
||||
create_inherent_data: Box::new(()),
|
||||
duration: Duration::from_millis(1000),
|
||||
chain_head: head,
|
||||
block_size_limit: None,
|
||||
}))
|
||||
.unwrap();
|
||||
let res = runtime
|
||||
.block_on(worker.on_slot(SlotInfo {
|
||||
slot: 0.into(),
|
||||
ends_at: Instant::now() + Duration::from_secs(100),
|
||||
create_inherent_data: Box::new(()),
|
||||
duration: Duration::from_millis(1000),
|
||||
chain_head: head,
|
||||
block_size_limit: None,
|
||||
}))
|
||||
.unwrap();
|
||||
|
||||
// The returned block should be imported and we should be able to get its header by now.
|
||||
assert!(client.header(&BlockId::Hash(res.block.hash())).unwrap().is_some());
|
||||
|
||||
Reference in New Issue
Block a user