From 96b8c7ff59a843e840a3e3af779930874de06aa2 Mon Sep 17 00:00:00 2001 From: nk_ysg Date: Sat, 19 Oct 2024 23:48:35 +0800 Subject: [PATCH] refactor BlockchainTestCase::run --- testing/ef-tests/src/cases/blockchain_test.rs | 16 +++++++--------- testing/ef-tests/src/models.rs | 6 +++--- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/testing/ef-tests/src/cases/blockchain_test.rs b/testing/ef-tests/src/cases/blockchain_test.rs index d29aafa82120..c93ca9792513 100644 --- a/testing/ef-tests/src/cases/blockchain_test.rs +++ b/testing/ef-tests/src/cases/blockchain_test.rs @@ -6,6 +6,7 @@ use crate::{ }; use alloy_rlp::Decodable; use rayon::iter::{ParallelBridge, ParallelIterator}; +use reth_chainspec::ChainSpec; use reth_primitives::{BlockBody, SealedBlock, StaticFileSegment}; use reth_provider::{ providers::StaticFileWriter, test_utils::create_test_provider_factory_with_chain_spec, @@ -81,13 +82,12 @@ impl Case for BlockchainTestCase { ) }) .par_bridge() - .try_for_each(|case| { + .try_for_each(|case: &BlockchainTest| { // Create a new test database and initialize a provider for the test case. - let provider = create_test_provider_factory_with_chain_spec(Arc::new( - case.network.clone().into(), - )) - .database_provider_rw() - .unwrap(); + let chain_spec: Arc = Arc::new((&case.network).into()); + let provider = create_test_provider_factory_with_chain_spec(chain_spec.clone()) + .database_provider_rw() + .unwrap(); // Insert initial test state into the provider. provider.insert_historical_block( @@ -127,9 +127,7 @@ impl Case for BlockchainTestCase { // Execute the execution stage using the EVM processor factory for the test case // network. let _ = ExecutionStage::new_with_executor( - reth_evm_ethereum::execute::EthExecutorProvider::ethereum(Arc::new( - case.network.clone().into(), - )), + reth_evm_ethereum::execute::EthExecutorProvider::ethereum(chain_spec), ) .execute( &provider, diff --git a/testing/ef-tests/src/models.rs b/testing/ef-tests/src/models.rs index 30e5e5bb20c2..cf65b9d9677f 100644 --- a/testing/ef-tests/src/models.rs +++ b/testing/ef-tests/src/models.rs @@ -313,11 +313,11 @@ pub enum ForkSpec { Unknown, } -impl From for ChainSpec { - fn from(fork_spec: ForkSpec) -> Self { +impl From<&ForkSpec> for ChainSpec { + fn from(fork_spec: &ForkSpec) -> Self { let spec_builder = ChainSpecBuilder::mainnet(); - match fork_spec { + match *fork_spec { ForkSpec::Frontier => spec_builder.frontier_activated(), ForkSpec::Homestead | ForkSpec::FrontierToHomesteadAt5 => { spec_builder.homestead_activated()