@@ -13,6 +13,7 @@ use blockifier::execution::entry_point_execution::{
1313use blockifier:: execution:: errors:: EntryPointExecutionError ;
1414use blockifier:: state:: cached_state:: CachedState ;
1515use cairo_vm:: Felt252 ;
16+ use cairo_vm:: types:: program:: Program ;
1617use cairo_vm:: vm:: errors:: cairo_run_errors:: CairoRunError ;
1718use cairo_vm:: vm:: errors:: vm_errors:: VirtualMachineError ;
1819use camino:: { Utf8Path , Utf8PathBuf } ;
@@ -74,13 +75,17 @@ pub fn run_test(
7475 if send. is_closed ( ) {
7576 return TestCaseSummary :: Interrupted { } ;
7677 }
77- let run_result = run_test_case (
78- & case,
79- & casm_program,
80- & RuntimeConfig :: from ( & forge_config. test_runner_config ) ,
81- None ,
82- & versioned_program_path,
83- ) ;
78+
79+ let run_result = case. try_into_program ( & casm_program) . and_then ( |program| {
80+ run_test_case (
81+ & case,
82+ & program,
83+ & casm_program,
84+ & RuntimeConfig :: from ( & forge_config. test_runner_config ) ,
85+ None ,
86+ & versioned_program_path,
87+ )
88+ } ) ;
8489
8590 if send. is_closed ( ) {
8691 return TestCaseSummary :: Interrupted { } ;
@@ -91,8 +96,10 @@ pub fn run_test(
9196}
9297
9398#[ tracing:: instrument( skip_all, level = "debug" ) ]
99+ #[ allow( clippy:: too_many_arguments) ]
94100pub ( crate ) fn run_fuzz_test (
95101 case : Arc < TestCaseWithResolvedConfig > ,
102+ program : Program ,
96103 casm_program : Arc < AssembledProgramWithDebugInfo > ,
97104 forge_config : Arc < ForgeConfig > ,
98105 versioned_program_path : Arc < Utf8PathBuf > ,
@@ -107,9 +114,9 @@ pub(crate) fn run_fuzz_test(
107114 if send. is_closed ( ) | fuzzing_send. is_closed ( ) {
108115 return TestCaseSummary :: Interrupted { } ;
109116 }
110-
111117 let run_result = run_test_case (
112118 & case,
119+ & program,
113120 & casm_program,
114121 & RuntimeConfig :: from ( & forge_config. test_runner_config ) ,
115122 Some ( rng) ,
@@ -159,14 +166,14 @@ pub enum RunResult {
159166#[ tracing:: instrument( skip_all, level = "debug" ) ]
160167pub fn run_test_case (
161168 case : & TestCaseWithResolvedConfig ,
169+ program : & Program ,
162170 casm_program : & AssembledProgramWithDebugInfo ,
163171 runtime_config : & RuntimeConfig ,
164172 fuzzer_rng : Option < Arc < Mutex < StdRng > > > ,
165173 versioned_program_path : & Utf8Path ,
166174) -> Result < RunResult > {
167- let program = case. try_into_program ( casm_program) ?;
168175 let ( call, entry_point) =
169- setup:: build_test_call_and_entry_point ( & case. test_details , casm_program, & program) ;
176+ setup:: build_test_call_and_entry_point ( & case. test_details , casm_program, program) ;
170177
171178 let mut state_reader = ExtendedStateReader {
172179 dict_state_reader : cheatnet_constants:: build_testing_state ( ) ,
@@ -199,7 +206,7 @@ pub fn run_test_case(
199206 } = setup:: initialize_execution_context (
200207 call. clone ( ) ,
201208 & hints,
202- & program,
209+ program,
203210 & mut cached_state,
204211 & mut context,
205212 ) ?;
0 commit comments