mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 12:11:02 +00:00
Integration tests (#805)
* Started substrate tests * Sync test * Test updates * Improved tests * Use on-chain block delay * Parallel test execution * Otimized tests * Logging * Fixed racing test * Fixed compilation * Fixed timestamp test * Removed rlp dependency * Minor fixes * Fixed tests * Removed best_block_id and resolved fdlimit issue * Whitespace * Use keyring * Style * Added API execution setting * Removed stale import
This commit is contained in:
committed by
Gav Wood
parent
955a5393d8
commit
9a660f82ed
@@ -25,6 +25,7 @@ extern crate futures;
|
||||
extern crate exit_future;
|
||||
extern crate serde;
|
||||
extern crate serde_json;
|
||||
extern crate parking_lot;
|
||||
extern crate substrate_keystore as keystore;
|
||||
extern crate substrate_primitives as primitives;
|
||||
extern crate sr_primitives as runtime_primitives;
|
||||
@@ -61,6 +62,7 @@ use std::net::SocketAddr;
|
||||
use std::sync::Arc;
|
||||
use std::collections::HashMap;
|
||||
use futures::prelude::*;
|
||||
use parking_lot::Mutex;
|
||||
use keystore::Store as Keystore;
|
||||
use client::BlockchainEvents;
|
||||
use runtime_primitives::traits::{Header, As};
|
||||
@@ -81,7 +83,7 @@ pub use components::{ServiceFactory, FullBackend, FullExecutor, LightBackend,
|
||||
ComponentBlock, FullClient, LightClient, FullComponents, LightComponents,
|
||||
CodeExecutor, NetworkService, FactoryChainSpec, FactoryBlock,
|
||||
FactoryFullConfiguration, RuntimeGenesis, FactoryGenesis,
|
||||
ComponentExHash, ComponentExtrinsic,
|
||||
ComponentExHash, ComponentExtrinsic, FactoryExtrinsic,
|
||||
};
|
||||
|
||||
const DEFAULT_PROTOCOL_ID: &'static str = "sup";
|
||||
@@ -95,7 +97,7 @@ pub struct Service<Components: components::Components> {
|
||||
exit: ::exit_future::Exit,
|
||||
signal: Option<Signal>,
|
||||
_rpc_http: Option<rpc::HttpServer>,
|
||||
_rpc_ws: Option<rpc::WsServer>,
|
||||
_rpc_ws: Option<Mutex<rpc::WsServer>>, // WsServer is not `Sync`, but the service needs to be.
|
||||
_telemetry: Option<tel::Telemetry>,
|
||||
}
|
||||
|
||||
@@ -186,12 +188,14 @@ impl<Components> Service<Components>
|
||||
|
||||
{
|
||||
// block notifications
|
||||
let network = network.clone();
|
||||
let network = Arc::downgrade(&network);
|
||||
let txpool = transaction_pool.clone();
|
||||
|
||||
let events = client.import_notification_stream()
|
||||
.for_each(move |notification| {
|
||||
network.on_block_imported(notification.hash, ¬ification.header);
|
||||
if let Some(network) = network.upgrade() {
|
||||
network.on_block_imported(notification.hash, ¬ification.header);
|
||||
}
|
||||
txpool.cull(&BlockId::hash(notification.hash))
|
||||
.map_err(|e| warn!("Error removing extrinsics: {:?}", e))?;
|
||||
Ok(())
|
||||
@@ -203,11 +207,13 @@ impl<Components> Service<Components>
|
||||
|
||||
{
|
||||
// extrinsic notifications
|
||||
let network = network.clone();
|
||||
let network = Arc::downgrade(&network);
|
||||
let events = transaction_pool.import_notification_stream()
|
||||
// TODO [ToDr] Consider throttling?
|
||||
.for_each(move |_| {
|
||||
network.trigger_repropagate();
|
||||
if let Some(network) = network.upgrade() {
|
||||
network.trigger_repropagate();
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
.select(exit.clone())
|
||||
@@ -277,7 +283,7 @@ impl<Components> Service<Components>
|
||||
keystore: keystore,
|
||||
exit,
|
||||
_rpc_http: rpc_http,
|
||||
_rpc_ws: rpc_ws,
|
||||
_rpc_ws: rpc_ws.map(Mutex::new),
|
||||
_telemetry: telemetry,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user