From e2e2438e96de3ec916df1bfd21fdb8068ec40bea Mon Sep 17 00:00:00 2001 From: Yonatan-Starkware Date: Wed, 20 Aug 2025 16:39:51 +0300 Subject: [PATCH] starknet_os: validate_builtins function --- crates/starknet_os/src/runner.rs | 4 +++- crates/starknet_os/src/test_utils/utils.rs | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/starknet_os/src/runner.rs b/crates/starknet_os/src/runner.rs index cafa8052459..8d171a4932b 100644 --- a/crates/starknet_os/src/runner.rs +++ b/crates/starknet_os/src/runner.rs @@ -208,7 +208,7 @@ pub fn run_os_for_testing( }: OsHints, state_readers: Vec, ) -> Result<(StarknetOsRunnerOutput, Vec), StarknetOsError> { - let (runner_output, snos_hint_processor) = create_hint_processor_and_run_os( + let (mut runner_output, snos_hint_processor) = create_hint_processor_and_run_os( layout, os_hints_config, &os_block_inputs, @@ -220,6 +220,8 @@ pub fn run_os_for_testing( public_key_y, )?; + crate::test_utils::utils::validate_builtins(&mut runner_output.cairo_runner); + let txs_trace: Vec = snos_hint_processor.get_current_execution_helper().unwrap().os_logger.get_txs().clone(); diff --git a/crates/starknet_os/src/test_utils/utils.rs b/crates/starknet_os/src/test_utils/utils.rs index bf35c6bd11c..54351fb30c7 100644 --- a/crates/starknet_os/src/test_utils/utils.rs +++ b/crates/starknet_os/src/test_utils/utils.rs @@ -5,6 +5,7 @@ use std::sync::LazyLock; use cairo_vm::hint_processor::builtin_hint_processor::dict_hint_utils::DICT_ACCESS_SIZE; use cairo_vm::types::layout_name::LayoutName; use cairo_vm::types::relocatable::{MaybeRelocatable, Relocatable}; +use cairo_vm::vm::runners::cairo_runner::CairoRunner; use cairo_vm::vm::vm_core::VirtualMachine; use ethnum::U256; use num_bigint::{BigInt, Sign}; @@ -157,3 +158,10 @@ pub(crate) fn get_entrypoint_runner_config() -> EntryPointRunnerConfig { ..Default::default() } } + +pub(crate) fn validate_builtins(runner: &mut CairoRunner) { + let builtins_start = runner.get_builtins_final_stack(runner.vm.get_ap()).unwrap(); + let n_builtins = runner.get_program().builtins_len(); + let builtins_end = runner.vm.get_ap(); + assert_eq!((builtins_start + n_builtins).unwrap(), builtins_end); +}