Companion PR for 'Simplify NativeExecutionDispatch and remove the native_executor_instance!' (9562) (#3643)

* Companion PR

* Add test executors

* Change comment to doc comment

* Update node/test/service/src/lib.rs

* Improve comments

* update Substrate

Co-authored-by: parity-processbot <>
This commit is contained in:
Ashley
2021-08-16 17:44:56 +02:00
committed by GitHub
parent e16c8d9902
commit 5b54c8cae9
7 changed files with 557 additions and 689 deletions
@@ -40,12 +40,22 @@ type BlockImport<B, BE, C, SC> = BabeBlockImport<B, C, GrandpaBlockImport<BE, B,
type Block = polkadot_primitives::v1::Block;
type SelectChain = sc_consensus::LongestChain<TFullBackend<Block>, Block>;
sc_executor::native_executor_instance!(
pub Executor,
polkadot_runtime::api::dispatch,
polkadot_runtime::native_version,
(benchmarking::benchmarking::HostFunctions, SignatureVerificationOverride),
);
/// Declare an instance of the native executor named `Executor`. Include the wasm binary as the
/// equivalent wasm code.
pub struct Executor;
impl sc_executor::NativeExecutionDispatch for Executor {
type ExtendHostFunctions =
(benchmarking::benchmarking::HostFunctions, SignatureVerificationOverride);
fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {
polkadot_runtime::api::dispatch(method, data)
}
fn native_version() -> sc_executor::NativeVersion {
polkadot_runtime::native_version()
}
}
/// `ChainInfo` implementation.
pub struct PolkadotChainInfo;
+15 -7
View File
@@ -35,7 +35,6 @@ use polkadot_test_runtime::{
};
use sc_chain_spec::ChainSpec;
use sc_client_api::execution_extensions::ExecutionStrategies;
use sc_executor::native_executor_instance;
use sc_network::{
config::{NetworkConfiguration, TransportConfig},
multiaddr,
@@ -55,12 +54,21 @@ use substrate_test_client::{
BlockchainEventsExt, RpcHandlersExt, RpcTransactionError, RpcTransactionOutput,
};
native_executor_instance!(
pub PolkadotTestExecutor,
polkadot_test_runtime::api::dispatch,
polkadot_test_runtime::native_version,
frame_benchmarking::benchmarking::HostFunctions,
);
/// Declare an instance of the native executor named `PolkadotTestExecutor`. Include the wasm binary as the
/// equivalent wasm code.
pub struct PolkadotTestExecutor;
impl sc_executor::NativeExecutionDispatch for PolkadotTestExecutor {
type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;
fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {
polkadot_test_runtime::api::dispatch(method, data)
}
fn native_version() -> sc_executor::NativeVersion {
polkadot_test_runtime::native_version()
}
}
/// The client type being used by the test service.
pub type Client = FullClient<polkadot_test_runtime::RuntimeApi, PolkadotTestExecutor>;