@@ -5696,6 +5696,41 @@ mod tests {
56965696 assert ! ( cairo_runner. vm. segments. memory. data[ 8 ] . len( ) as u32 % CELLS_PER_KECCAK == 0 ) ;
56975697 }
56985698
5699+ #[ test]
5700+ fn end_run_fill_middle_holes ( ) {
5701+ let program = Program :: from_bytes (
5702+ include_bytes ! ( "../../../../cairo_programs/poseidon_builtin_hole.json" ) ,
5703+ Some ( "main" ) ,
5704+ )
5705+ . unwrap ( ) ;
5706+
5707+ let mut hint_processor = BuiltinHintProcessor :: new_empty ( ) ;
5708+ let mut cairo_runner = cairo_runner ! ( program, LayoutName :: all_cairo, true , true ) ;
5709+
5710+ let end = cairo_runner. initialize ( false ) . unwrap ( ) ;
5711+ cairo_runner
5712+ . run_until_pc ( end, & mut hint_processor)
5713+ . expect ( "Call to `CairoRunner::run_until_pc()` failed." ) ;
5714+
5715+ // Before end run
5716+ assert ! ( cairo_runner. vm. segments. memory. data[ 9 ] [ 4 ] . is_none( ) ) ;
5717+
5718+ assert_matches ! (
5719+ cairo_runner. end_run( false , false , & mut hint_processor) ,
5720+ Ok ( ( ) )
5721+ ) ;
5722+
5723+ // After end run
5724+ assert ! ( !cairo_runner. vm. segments. memory. data[ 9 ] [ 4 ] . is_none( ) ) ;
5725+
5726+ // // Check prover input info
5727+ let prover_input = cairo_runner
5728+ . get_prover_input_info ( )
5729+ . expect ( "Failed to get prover input info" ) ;
5730+ assert ! ( prover_input. relocatable_memory[ 9 ] [ 4 ] . is_some( ) ) ;
5731+ assert ! ( prover_input. builtins_segments. get( & 9 ) == Some ( & BuiltinName :: poseidon) ) ;
5732+ }
5733+
56995734 #[ rstest]
57005735 #[ case( include_bytes!( "../../../../cairo_programs/proof_programs/fibonacci.json" ) ) ]
57015736 #[ case( include_bytes!( "../../../../cairo_programs/proof_programs/bitwise_output.json" ) ) ]
0 commit comments