diff --git a/crates/cairo-lang-protostar/src/cli.rs b/crates/cairo-lang-protostar/src/cli.rs index ba7bb507f1d..726827c2041 100644 --- a/crates/cairo-lang-protostar/src/cli.rs +++ b/crates/cairo-lang-protostar/src/cli.rs @@ -1,7 +1,7 @@ //! Compiles and runs a Cairo program. use std::fs; -use anyhow::{anyhow, Context}; +use anyhow::Context; use cairo_lang_protostar::build_protostar_casm_from_sierra; use cairo_lang_protostar::test_collector::collect_tests; use clap::Parser; @@ -25,10 +25,10 @@ fn main() -> anyhow::Result<()> { String::from("bitwise"), String::from("ec_op"), ]; - let (sierra_code_opt, collected) = + let (sierra_program, collected) = collect_tests(&args.file, None, None, Some(builtins.iter().collect()))?; - let sierra_code = sierra_code_opt.ok_or(anyhow!("Expected sierra code"))?; + let sierra_code = sierra_program.to_string(); if let Some(out_path) = args.output_sierra { fs::write(out_path, format!("{}", sierra_code)).context("Failed to write output.")?; diff --git a/crates/cairo-lang-protostar/src/lib.rs b/crates/cairo-lang-protostar/src/lib.rs index 70ad47ac435..f96a0acb280 100644 --- a/crates/cairo-lang-protostar/src/lib.rs +++ b/crates/cairo-lang-protostar/src/lib.rs @@ -10,9 +10,9 @@ pub mod test_collector; pub fn build_protostar_casm( collected_tests: &Vec, - contents: &str, + sierra_contents: &str, ) -> anyhow::Result { - let program: Program = ProgramParser::new().parse(&contents).unwrap(); + let program: Program = ProgramParser::new().parse(&sierra_contents).unwrap(); let casm_generator = match SierraCasmGenerator::new(program) { Ok(casm_generator) => casm_generator, diff --git a/crates/cairo-lang-protostar/src/test_collector/mod.rs b/crates/cairo-lang-protostar/src/test_collector/mod.rs index 5ff19853201..32e3d6c229e 100644 --- a/crates/cairo-lang-protostar/src/test_collector/mod.rs +++ b/crates/cairo-lang-protostar/src/test_collector/mod.rs @@ -216,7 +216,7 @@ pub fn collect_tests( output_path: Option<&String>, maybe_cairo_paths: Option>, maybe_builtins: Option>, -) -> Result<(Option, Vec)> { +) -> Result<(Program, Vec)> { // code taken from crates/cairo-lang-test-runner/src/lib.rs let db = &mut { let mut b = RootDatabase::builder(); @@ -291,13 +291,10 @@ pub fn collect_tests( validate_tests(sierra_program.clone(), &collected_tests, builtins) .context("Test validation failed")?; - let mut result_contents = None; if let Some(path) = output_path { fs::write(path, &sierra_program.to_string()).context("Failed to write output")?; - } else { - result_contents = Some(sierra_program.to_string()); } - Ok((result_contents, collected_tests)) + Ok((sierra_program, collected_tests)) } fn validate_tests( diff --git a/crates/cairo-lang-python-bindings/src/lib.rs b/crates/cairo-lang-python-bindings/src/lib.rs index ddd77dc1885..feb5f868d2e 100644 --- a/crates/cairo-lang-python-bindings/src/lib.rs +++ b/crates/cairo-lang-python-bindings/src/lib.rs @@ -118,15 +118,15 @@ fn compile_starknet_contract_sierra_to_casm_from_path( Ok(Some(casm)) } -// returns tuple[sierra if no output_path, list[test_name, test_config]] +// returns tuple[sierra, list[test_name, test_config]] #[pyfunction] fn collect_tests( input_path: String, output_path: Option, maybe_cairo_paths: Option>, maybe_builtins: Option>, -) -> PyResult<(Option, Vec)> { - let (sierra_code, collected) = internal_collect_tests( +) -> PyResult<(String, Vec)> { + let (sierra_program, collected) = internal_collect_tests( &input_path, output_path.as_ref(), maybe_cairo_paths.as_ref().map(|a| a.iter().map(|b| b).collect::>()), @@ -140,7 +140,7 @@ fn collect_tests( })?; let external_collected = collected.iter().map(|c| (c.name.clone(), c.available_gas)).collect(); - Ok((sierra_code, external_collected)) + Ok((sierra_program.to_string(), external_collected)) } #[pyfunction] diff --git a/crates/cairo-lang-test-runner/src/lib.rs b/crates/cairo-lang-test-runner/src/lib.rs index d661e3d7e99..0731399c97c 100644 --- a/crates/cairo-lang-test-runner/src/lib.rs +++ b/crates/cairo-lang-test-runner/src/lib.rs @@ -228,7 +228,7 @@ pub struct TestsSummary { } /// Runs the tests and process the results for a summary. -fn run_tests( +pub fn run_tests( named_tests: Vec<(String, TestConfig)>, sierra_program: cairo_lang_sierra::program::Program, function_set_costs: OrderedHashMap>,