From 659c04a3794065ee2a15205a7d4477807ad45bb8 Mon Sep 17 00:00:00 2001 From: Dori Medini Date: Sun, 1 Mar 2026 17:51:17 +0200 Subject: [PATCH] starknet_os_flow_tests: implement FuzzCallInfo::new_call --- .../starknet_os_flow_tests/src/fuzz_tests.rs | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/crates/starknet_os_flow_tests/src/fuzz_tests.rs b/crates/starknet_os_flow_tests/src/fuzz_tests.rs index 7dfce790c29..af21dbd1470 100644 --- a/crates/starknet_os_flow_tests/src/fuzz_tests.rs +++ b/crates/starknet_os_flow_tests/src/fuzz_tests.rs @@ -199,6 +199,16 @@ struct FuzzCallInfo { pub inner_calls: Vec, } +impl FuzzCallInfo { + pub fn new_call( + address: ContractAddress, + class_hash: ClassHash, + parent_failure_behavior: ParentFailureBehavior, + ) -> Self { + Self { address, class_hash, parent_failure_behavior, inner_calls: vec![] } + } +} + /// Represents the call tree of a fuzz test. #[allow(dead_code)] struct FuzzTestManager { @@ -267,13 +277,12 @@ impl FuzzTestManager { } // First call is the orchestrator calling the first fuzz test contract. - let first_call = FuzzCallInfo { - address: cairo1_contract_address_a, - class_hash: *CAIRO1_CONTRACT_CLASS_HASH, + let first_call = FuzzCallInfo::new_call( + cairo1_contract_address_a, + *CAIRO1_CONTRACT_CLASS_HASH, // The orchestrator always starts the test in a catching context. - parent_failure_behavior: ParentFailureBehavior::Cairo1Catching, - inner_calls: vec![], - }; + ParentFailureBehavior::Cairo1Catching, + ); Self { calls: vec![first_call], current_call: vec![0], @@ -402,22 +411,20 @@ impl FuzzTestManager { FuzzOperationData::Call(call_operation_data) => { let address = *call_operation_data.address(); let class_hash = *self.deployed_fuzz_contracts.get(&address).unwrap(); - self.current_fuzz_call_info_mut().inner_calls.push(FuzzCallInfo { + self.current_fuzz_call_info_mut().inner_calls.push(FuzzCallInfo::new_call( address, class_hash, - parent_failure_behavior: call_operation_data.parent_failure_behavior(), - inner_calls: vec![], - }); + call_operation_data.parent_failure_behavior(), + )); self.current_call.push(self.current_fuzz_call_info().inner_calls.len() - 1); } FuzzOperationData::LibraryCall(library_call_operation_data) => { let current_address = self.current_fuzz_call_info().address; - self.current_fuzz_call_info_mut().inner_calls.push(FuzzCallInfo { - address: current_address, - class_hash: *library_call_operation_data.class_hash(), - parent_failure_behavior: library_call_operation_data.parent_failure_behavior(), - inner_calls: vec![], - }); + self.current_fuzz_call_info_mut().inner_calls.push(FuzzCallInfo::new_call( + current_address, + *library_call_operation_data.class_hash(), + library_call_operation_data.parent_failure_behavior(), + )); self.current_call.push(self.current_fuzz_call_info().inner_calls.len() - 1); } }