From 4375e878990f4b79cd811ea2b8d8077b142d4a3d Mon Sep 17 00:00:00 2001 From: Tom French Date: Tue, 18 Jun 2024 19:03:17 +0100 Subject: [PATCH] chore: export `run_test` through `nargo_cli` --- tooling/nargo_cli/src/cli/mod.rs | 2 + tooling/nargo_cli/src/cli/test_cmd.rs | 2 +- tooling/nargo_cli/src/lib.rs | 6 +++ tooling/nargo_cli/src/main.rs | 5 ++ tooling/nargo_cli/tests/stdlib-tests.rs | 64 ++++++------------------- 5 files changed, 28 insertions(+), 51 deletions(-) create mode 100644 tooling/nargo_cli/src/lib.rs diff --git a/tooling/nargo_cli/src/cli/mod.rs b/tooling/nargo_cli/src/cli/mod.rs index 485ccc7abaf..b547e41b029 100644 --- a/tooling/nargo_cli/src/cli/mod.rs +++ b/tooling/nargo_cli/src/cli/mod.rs @@ -21,6 +21,8 @@ mod lsp_cmd; mod new_cmd; mod test_cmd; +pub use test_cmd::run_test; + const GIT_HASH: &str = env!("GIT_COMMIT"); const IS_DIRTY: &str = env!("GIT_DIRTY"); const NARGO_VERSION: &str = env!("CARGO_PKG_VERSION"); diff --git a/tooling/nargo_cli/src/cli/test_cmd.rs b/tooling/nargo_cli/src/cli/test_cmd.rs index de9e8dc5d7c..3ab296287eb 100644 --- a/tooling/nargo_cli/src/cli/test_cmd.rs +++ b/tooling/nargo_cli/src/cli/test_cmd.rs @@ -158,7 +158,7 @@ fn run_tests + Default>( Ok(test_report) } -fn run_test + Default>( +pub fn run_test + Default>( file_manager: &FileManager, parsed_files: &ParsedFiles, package: &Package, diff --git a/tooling/nargo_cli/src/lib.rs b/tooling/nargo_cli/src/lib.rs new file mode 100644 index 00000000000..d6fd2a4edaf --- /dev/null +++ b/tooling/nargo_cli/src/lib.rs @@ -0,0 +1,6 @@ +#[allow(clippy::all)] +#[allow(dead_code)] +mod cli; +mod errors; + +pub use cli::run_test; diff --git a/tooling/nargo_cli/src/main.rs b/tooling/nargo_cli/src/main.rs index a407d467ced..263ca1ccc03 100644 --- a/tooling/nargo_cli/src/main.rs +++ b/tooling/nargo_cli/src/main.rs @@ -7,6 +7,9 @@ //! This name was used because it sounds like `cargo` and //! Noir Package Manager abbreviated is npm, which is already taken. +// Hack to appease compiler warnings +use nargo_cli as _; + mod cli; mod errors; @@ -17,6 +20,8 @@ use color_eyre::config::HookBuilder; use tracing_appender::rolling; use tracing_subscriber::{fmt::format::FmtSpan, EnvFilter}; +pub use cli::run_test; + const PANIC_MESSAGE: &str = "This is a bug. We may have already fixed this in newer versions of Nargo so try searching for similar issues at https://github.com/noir-lang/noir/issues/.\nIf there isn't an open issue for this bug, consider opening one at https://github.com/noir-lang/noir/issues/new?labels=bug&template=bug_report.yml"; fn main() { diff --git a/tooling/nargo_cli/tests/stdlib-tests.rs b/tooling/nargo_cli/tests/stdlib-tests.rs index 5badd76605a..817af5e79df 100644 --- a/tooling/nargo_cli/tests/stdlib-tests.rs +++ b/tooling/nargo_cli/tests/stdlib-tests.rs @@ -1,16 +1,17 @@ use std::io::Write; use std::{collections::BTreeMap, path::PathBuf}; -use acvm::blackbox_solver::StubbedBlackBoxSolver; +use bn254_blackbox_solver::Bn254BlackBoxSolver; use fm::FileManager; -use noirc_driver::{check_crate, compile_no_check, file_manager_with_stdlib, CompileOptions}; +use noirc_driver::{check_crate, file_manager_with_stdlib, CompileOptions}; use noirc_frontend::hir::FunctionNameMatch; use nargo::{ - ops::{report_errors, run_test, TestStatus}, + ops::{report_errors, TestStatus}, package::{Package, PackageType}, parse_all, prepare_package, }; +use nargo_cli::run_test; use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor}; #[test] @@ -46,53 +47,16 @@ fn run_stdlib_tests() { let test_report: Vec<(String, TestStatus)> = test_functions .into_iter() - .map(|(test_name, test_function)| { - let test_function_has_no_arguments = context - .def_interner - .function_meta(&test_function.get_id()) - .function_signature() - .0 - .is_empty(); - - let status = if test_function_has_no_arguments { - run_test( - &StubbedBlackBoxSolver, - &mut context, - &test_function, - false, - None, - &CompileOptions::default(), - ) - } else { - use noir_fuzzer::FuzzedExecutor; - use proptest::test_runner::TestRunner; - - let compiled_program = compile_no_check( - &mut context, - &CompileOptions::default(), - test_function.get_id(), - None, - false, - ); - match compiled_program { - Ok(compiled_program) => { - let runner = TestRunner::default(); - - let fuzzer = FuzzedExecutor::new(compiled_program.into(), runner); - - let result = fuzzer.fuzz(); - if result.success { - TestStatus::Pass - } else { - TestStatus::Fail { - message: result.reason.unwrap_or_default(), - error_diagnostic: None, - } - } - } - Err(err) => TestStatus::CompileError(err.into()), - } - }; + .map(|(test_name, _)| { + let status = run_test::( + &file_manager, + &parsed_files, + &dummy_package, + &test_name, + false, + None, + &CompileOptions::default(), + ); (test_name, status) }) .collect();