Skip to content

Commit b5cd7df

Browse files
blockifier_reexecution: move reexecute block for testing (#10709)
1 parent 61dd459 commit b5cd7df

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

crates/blockifier_reexecution/src/state_reader/reexecution_test.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,31 @@
1+
use blockifier::blockifier::config::ContractClassManagerConfig;
2+
use blockifier::state::contract_class_manager::ContractClassManager;
13
use rstest::rstest;
24
use starknet_api::block::BlockNumber;
35

46
use crate::state_reader::cli::get_block_numbers_for_reexecution;
5-
use crate::state_reader::utils::reexecute_block_for_testing;
7+
use crate::state_reader::offline_state_reader::OfflineConsecutiveStateReaders;
8+
use crate::state_reader::reexecution_state_reader::ConsecutiveReexecutionStateReaders;
9+
10+
/// Reexecutes a block from a pre-saved JSON file and verifies correctness.
11+
fn reexecute_block_for_testing(block_number: u64) {
12+
// In tests we are already in the blockifier_reexecution directory.
13+
let full_file_path = format!("./resources/block_{block_number}/reexecution_data.json");
14+
15+
// Initialize the contract class manager.
16+
let mut contract_class_manager_config = ContractClassManagerConfig::default();
17+
if cfg!(feature = "cairo_native") {
18+
contract_class_manager_config.cairo_native_run_config.wait_on_native_compilation = true;
19+
contract_class_manager_config.cairo_native_run_config.run_cairo_native = true;
20+
}
21+
let contract_class_manager = ContractClassManager::start(contract_class_manager_config);
22+
23+
OfflineConsecutiveStateReaders::new_from_file(&full_file_path, contract_class_manager)
24+
.unwrap()
25+
.reexecute_and_verify_correctness();
26+
27+
println!("Reexecution test for block {block_number} passed successfully.");
28+
}
629

730
#[rstest]
831
#[case::v_0_13_0(600001)]

crates/blockifier_reexecution/src/state_reader/utils.rs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ use std::sync::{Arc, LazyLock};
44

55
use apollo_gateway_config::config::RpcStateReaderConfig;
66
use apollo_rpc_execution::{ETH_FEE_CONTRACT_ADDRESS, STRK_FEE_CONTRACT_ADDRESS};
7-
use blockifier::blockifier::config::ContractClassManagerConfig;
87
use blockifier::context::{ChainInfo, FeeTokenAddresses};
98
use blockifier::execution::contract_class::{CompiledClassV0, CompiledClassV1};
109
use blockifier::state::cached_state::{CommitmentStateDiff, StateMaps};
11-
use blockifier::state::contract_class_manager::ContractClassManager;
1210
use blockifier::state::global_cache::CompiledClasses;
1311
use blockifier::state::state_api::StateResult;
1412
use indexmap::IndexMap;
@@ -20,8 +18,6 @@ use starknet_api::state::{SierraContractClass, StorageKey};
2018
use starknet_types_core::felt::Felt;
2119

2220
use crate::state_reader::errors::ReexecutionError;
23-
use crate::state_reader::offline_state_reader::OfflineConsecutiveStateReaders;
24-
use crate::state_reader::reexecution_state_reader::ConsecutiveReexecutionStateReaders;
2521

2622
pub static RPC_NODE_URL: LazyLock<String> = LazyLock::new(|| {
2723
env::var("TEST_URL")
@@ -221,25 +217,6 @@ impl From<CommitmentStateDiff> for ComparableStateDiff {
221217
}
222218
}
223219

224-
pub fn reexecute_block_for_testing(block_number: u64) {
225-
// In tests we are already in the blockifier_reexecution directory.
226-
let full_file_path = format!("./resources/block_{block_number}/reexecution_data.json");
227-
228-
// Initialize the contract class manager.
229-
let mut contract_class_manager_config = ContractClassManagerConfig::default();
230-
if cfg!(feature = "cairo_native") {
231-
contract_class_manager_config.cairo_native_run_config.wait_on_native_compilation = true;
232-
contract_class_manager_config.cairo_native_run_config.run_cairo_native = true;
233-
}
234-
let contract_class_manager = ContractClassManager::start(contract_class_manager_config);
235-
236-
OfflineConsecutiveStateReaders::new_from_file(&full_file_path, contract_class_manager)
237-
.unwrap()
238-
.reexecute_and_verify_correctness();
239-
240-
println!("Reexecution test for block {block_number} passed successfully.");
241-
}
242-
243220
/// Asserts equality between two `CommitmentStateDiff` structs, ignoring insertion order.
244221
#[macro_export]
245222
macro_rules! assert_eq_state_diff {

0 commit comments

Comments
 (0)