diff --git a/crates/nargo_cli/src/cli/check_cmd.rs b/crates/nargo_cli/src/cli/check_cmd.rs index 44d4dca1a49..8e861f0fc1e 100644 --- a/crates/nargo_cli/src/cli/check_cmd.rs +++ b/crates/nargo_cli/src/cli/check_cmd.rs @@ -110,16 +110,10 @@ fn create_input_toml_template( #[cfg(test)] mod tests { - use std::path::PathBuf; - - use nargo_toml::{find_package_manifest, resolve_workspace_from_toml}; use noirc_abi::{AbiParameter, AbiType, AbiVisibility, Sign}; - use noirc_driver::CompileOptions; use super::create_input_toml_template; - const TEST_DATA_DIR: &str = "tests/target_tests_data"; - #[test] fn valid_toml_template() { let typed_param = |name: &str, typ: AbiType| AbiParameter { @@ -159,63 +153,6 @@ d2 = ["", "", ""] "#; assert_eq!(toml_str, expected_toml_str); } - - #[test] - fn pass() { - let pass_dir = - PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(format!("{TEST_DATA_DIR}/pass")); - - let config = CompileOptions::default(); - let paths = std::fs::read_dir(pass_dir).unwrap(); - for path in paths.flatten() { - let path = path.path(); - let toml_path = find_package_manifest(&path).unwrap(); - let workspace = resolve_workspace_from_toml(&toml_path, None).unwrap(); - for package in &workspace { - assert!(super::check_package(package, &config).is_ok(), "path: {}", path.display()); - } - } - } - - #[test] - #[ignore = "This test fails because the reporter exits the process with 1"] - fn fail() { - let fail_dir = - PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(format!("{TEST_DATA_DIR}/fail")); - - let config = CompileOptions::default(); - let paths = std::fs::read_dir(fail_dir).unwrap(); - for path in paths.flatten() { - let path = path.path(); - let toml_path = find_package_manifest(&path).unwrap(); - let workspace = resolve_workspace_from_toml(&toml_path, None).unwrap(); - for package in &workspace { - assert!( - super::check_package(package, &config).is_err(), - "path: {}", - path.display() - ); - } - } - } - - #[test] - fn pass_with_warnings() { - let pass_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")) - .join(format!("{TEST_DATA_DIR}/pass_dev_mode")); - - let config = CompileOptions { deny_warnings: false, ..Default::default() }; - - let paths = std::fs::read_dir(pass_dir).unwrap(); - for path in paths.flatten() { - let path = path.path(); - let toml_path = find_package_manifest(&path).unwrap(); - let workspace = resolve_workspace_from_toml(&toml_path, None).unwrap(); - for package in &workspace { - assert!(super::check_package(package, &config).is_ok(), "path: {}", path.display()); - } - } - } } /// Run the lexing, parsing, name resolution, and type checking passes and report any warnings diff --git a/crates/nargo_cli/src/cli/mod.rs b/crates/nargo_cli/src/cli/mod.rs index 817bfabf57d..2774d4cb6a4 100644 --- a/crates/nargo_cli/src/cli/mod.rs +++ b/crates/nargo_cli/src/cli/mod.rs @@ -86,61 +86,3 @@ pub(crate) fn start_cli() -> eyre::Result<()> { Ok(()) } - -// FIXME: I not sure that this is the right place for this tests. -#[cfg(test)] -mod tests { - use fm::FileManager; - use noirc_driver::{check_crate, prepare_crate}; - use noirc_errors::reporter; - use noirc_frontend::{graph::CrateGraph, hir::Context}; - - use std::path::{Path, PathBuf}; - - const TEST_DATA_DIR: &str = "tests/compile_tests_data"; - - /// Compiles a file and returns true if compilation was successful - /// - /// This is used for tests. - fn file_compiles(root_dir: &Path, root_file: &Path) -> bool { - let fm = FileManager::new(root_dir); - let graph = CrateGraph::default(); - let mut context = Context::new(fm, graph); - let crate_id = prepare_crate(&mut context, root_file); - - let result = check_crate(&mut context, crate_id, false); - let success = result.is_ok(); - - let errors = match result { - Ok(warnings) => warnings, - Err(errors) => errors, - }; - - reporter::report_all(&context.file_manager, &errors, false); - success - } - - #[test] - fn compilation_pass() { - let pass_dir = - PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(format!("{TEST_DATA_DIR}/pass")); - - let paths = std::fs::read_dir(&pass_dir).unwrap(); - for path in paths.flatten() { - let path = path.path(); - assert!(file_compiles(&pass_dir, &path), "path: {}", path.display()); - } - } - - #[test] - fn compilation_fail() { - let fail_dir = - PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(format!("{TEST_DATA_DIR}/fail")); - - let paths = std::fs::read_dir(&fail_dir).unwrap(); - for path in paths.flatten() { - let path = path.path(); - assert!(!file_compiles(&fail_dir, &path), "path: {}", path.display()); - } - } -} diff --git a/crates/nargo_cli/tests/target_tests_data/fail/dup_func/Nargo.toml b/crates/nargo_cli/tests/compile_failure/constrain_typo/Nargo.toml similarity index 76% rename from crates/nargo_cli/tests/target_tests_data/fail/dup_func/Nargo.toml rename to crates/nargo_cli/tests/compile_failure/constrain_typo/Nargo.toml index 449a8fd7f73..db1c3480387 100644 --- a/crates/nargo_cli/tests/target_tests_data/fail/dup_func/Nargo.toml +++ b/crates/nargo_cli/tests/compile_failure/constrain_typo/Nargo.toml @@ -1,5 +1,5 @@ [package] -name = "fail_dup_func" +name = "constrain_typo" type = "bin" authors = [""] compiler_version = "0.1" diff --git a/crates/nargo_cli/tests/target_tests_data/fail/basic/src/main.nr b/crates/nargo_cli/tests/compile_failure/constrain_typo/src/main.nr similarity index 100% rename from crates/nargo_cli/tests/target_tests_data/fail/basic/src/main.nr rename to crates/nargo_cli/tests/compile_failure/constrain_typo/src/main.nr diff --git a/crates/nargo_cli/tests/target_tests_data/pass/import/Nargo.toml b/crates/nargo_cli/tests/compile_failure/duplicate_declaration/Nargo.toml similarity index 71% rename from crates/nargo_cli/tests/target_tests_data/pass/import/Nargo.toml rename to crates/nargo_cli/tests/compile_failure/duplicate_declaration/Nargo.toml index e6ba22f9b14..56f65941b52 100644 --- a/crates/nargo_cli/tests/target_tests_data/pass/import/Nargo.toml +++ b/crates/nargo_cli/tests/compile_failure/duplicate_declaration/Nargo.toml @@ -1,5 +1,5 @@ [package] -name = "pass_import" +name = "duplicate_declaration" type = "bin" authors = [""] compiler_version = "0.1" diff --git a/crates/nargo_cli/tests/target_tests_data/fail/dup_func/src/main.nr b/crates/nargo_cli/tests/compile_failure/duplicate_declaration/src/main.nr similarity index 100% rename from crates/nargo_cli/tests/target_tests_data/fail/dup_func/src/main.nr rename to crates/nargo_cli/tests/compile_failure/duplicate_declaration/src/main.nr diff --git a/crates/nargo_cli/tests/target_tests_data/pass/basic/Nargo.toml b/crates/nargo_cli/tests/compile_success/unused_variables/Nargo.toml similarity index 75% rename from crates/nargo_cli/tests/target_tests_data/pass/basic/Nargo.toml rename to crates/nargo_cli/tests/compile_success/unused_variables/Nargo.toml index 8c9a08e4d19..61456b3a320 100644 --- a/crates/nargo_cli/tests/target_tests_data/pass/basic/Nargo.toml +++ b/crates/nargo_cli/tests/compile_success/unused_variables/Nargo.toml @@ -1,5 +1,5 @@ [package] -name = "pass_basic" +name = "unused_variables" type = "bin" authors = [""] compiler_version = "0.1" diff --git a/crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/src/main.nr b/crates/nargo_cli/tests/compile_success/unused_variables/src/main.nr similarity index 100% rename from crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/src/main.nr rename to crates/nargo_cli/tests/compile_success/unused_variables/src/main.nr diff --git a/crates/nargo_cli/tests/compile_tests_data/fail/basic.nr b/crates/nargo_cli/tests/compile_tests_data/fail/basic.nr deleted file mode 100644 index ee99663da46..00000000000 --- a/crates/nargo_cli/tests/compile_tests_data/fail/basic.nr +++ /dev/null @@ -1,7 +0,0 @@ - -// This should not compile as the keyword -// is `constrain` and not `constrai` - -fn main(x : Field, y : Field) { - constrai x != y; -} \ No newline at end of file diff --git a/crates/nargo_cli/tests/compile_tests_data/fail/different-lambda-env-reassign-disallow.nr b/crates/nargo_cli/tests/compile_tests_data/fail/different-lambda-env-reassign-disallow.nr deleted file mode 100644 index 7bac2367846..00000000000 --- a/crates/nargo_cli/tests/compile_tests_data/fail/different-lambda-env-reassign-disallow.nr +++ /dev/null @@ -1,9 +0,0 @@ -fn bad() { - let a: i32 = 100; - let b: i32 = 200; - - let mut f = || a; - - // this should fail with a type error, since the closures have different environments & types - f = || a + b; -} \ No newline at end of file diff --git a/crates/nargo_cli/tests/compile_tests_data/fail/dup_func.nr b/crates/nargo_cli/tests/compile_tests_data/fail/dup_func.nr deleted file mode 100644 index 09337e51c93..00000000000 --- a/crates/nargo_cli/tests/compile_tests_data/fail/dup_func.nr +++ /dev/null @@ -1,8 +0,0 @@ -// Duplicate functions should not compile -fn hello(x : Field) -> Field { - x -} - -fn hello(x : Field) -> Field { - x -} \ No newline at end of file diff --git a/crates/nargo_cli/tests/compile_tests_data/pass/basic.nr b/crates/nargo_cli/tests/compile_tests_data/pass/basic.nr deleted file mode 100644 index 90c0d7ffd3e..00000000000 --- a/crates/nargo_cli/tests/compile_tests_data/pass/basic.nr +++ /dev/null @@ -1,4 +0,0 @@ - -fn main(x : Field, y : Field) { - assert(x != y); -} \ No newline at end of file diff --git a/crates/nargo_cli/tests/compile_tests_data/pass/basic_import.nr b/crates/nargo_cli/tests/compile_tests_data/pass/basic_import.nr deleted file mode 100644 index bb61c0f1edc..00000000000 --- a/crates/nargo_cli/tests/compile_tests_data/pass/basic_import.nr +++ /dev/null @@ -1,11 +0,0 @@ -mod import; -use dep::std; - -use crate::import::hello; - -fn main(x : Field, y : Field) { - let _k = std::hash::pedersen([x]); - let _l = hello(x); - - assert(x != import::hello(y)); -} diff --git a/crates/nargo_cli/tests/target_tests_data/fail/basic/Nargo.toml b/crates/nargo_cli/tests/execution_success/import/Nargo.toml similarity index 79% rename from crates/nargo_cli/tests/target_tests_data/fail/basic/Nargo.toml rename to crates/nargo_cli/tests/execution_success/import/Nargo.toml index f87e0b49bde..858c2a29840 100644 --- a/crates/nargo_cli/tests/target_tests_data/fail/basic/Nargo.toml +++ b/crates/nargo_cli/tests/execution_success/import/Nargo.toml @@ -1,5 +1,5 @@ [package] -name = "fail_basic" +name = "import" type = "bin" authors = [""] compiler_version = "0.1" diff --git a/crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/Prover.toml b/crates/nargo_cli/tests/execution_success/import/Prover.toml similarity index 100% rename from crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/Prover.toml rename to crates/nargo_cli/tests/execution_success/import/Prover.toml diff --git a/crates/nargo_cli/tests/compile_tests_data/pass/import.nr b/crates/nargo_cli/tests/execution_success/import/src/import.nr similarity index 100% rename from crates/nargo_cli/tests/compile_tests_data/pass/import.nr rename to crates/nargo_cli/tests/execution_success/import/src/import.nr diff --git a/crates/nargo_cli/tests/target_tests_data/pass/import/src/main.nr b/crates/nargo_cli/tests/execution_success/import/src/main.nr similarity index 100% rename from crates/nargo_cli/tests/target_tests_data/pass/import/src/main.nr rename to crates/nargo_cli/tests/execution_success/import/src/main.nr diff --git a/crates/nargo_cli/tests/execution_success/import/target/import.json b/crates/nargo_cli/tests/execution_success/import/target/import.json new file mode 100644 index 00000000000..39e7c2047f6 --- /dev/null +++ b/crates/nargo_cli/tests/execution_success/import/target/import.json @@ -0,0 +1 @@ +{"backend":"acvm-backend-barretenberg","abi":{"parameters":[{"name":"x","type":{"kind":"field"},"visibility":"private"},{"name":"y","type":{"kind":"field"},"visibility":"private"}],"param_witnesses":{"x":[1],"y":[2]},"return_type":null,"return_witnesses":[]},"bytecode":"H4sIAAAAAAAA/7VTSQ7DIAw0SRt66ltslmBu/UpRyf9fULVSieQmucWMhGw4jMdjcwOACX4wLTfi/m75+D0X+MfY4qNFPAcygsvjHEJNrpKnJ7pcOGKIZWZiihxfjr2vHDjlkhNmCr7SErNfGtmgyHXV6xFH4a+EUfZSU7PUO4l83YfhYCemDj3Bps7Wx/vBm2rxHkPqYZQFveXv1bfVnxEKyp3msz5YRZ2D0Cg/z4oPWGlYTZUFAAA=","proving_key":null,"verification_key":null} \ No newline at end of file diff --git a/crates/nargo_cli/tests/execution_success/import/target/witness.tr b/crates/nargo_cli/tests/execution_success/import/target/witness.tr new file mode 100644 index 00000000000..82dd0af1b38 Binary files /dev/null and b/crates/nargo_cli/tests/execution_success/import/target/witness.tr differ diff --git a/crates/nargo_cli/tests/target_tests_data/pass/basic/Prover.toml b/crates/nargo_cli/tests/target_tests_data/pass/basic/Prover.toml deleted file mode 100644 index e0a68175d07..00000000000 --- a/crates/nargo_cli/tests/target_tests_data/pass/basic/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "" -y = "" diff --git a/crates/nargo_cli/tests/target_tests_data/pass/basic/src/main.nr b/crates/nargo_cli/tests/target_tests_data/pass/basic/src/main.nr deleted file mode 100644 index 90c0d7ffd3e..00000000000 --- a/crates/nargo_cli/tests/target_tests_data/pass/basic/src/main.nr +++ /dev/null @@ -1,4 +0,0 @@ - -fn main(x : Field, y : Field) { - assert(x != y); -} \ No newline at end of file diff --git a/crates/nargo_cli/tests/target_tests_data/pass/import/Prover.toml b/crates/nargo_cli/tests/target_tests_data/pass/import/Prover.toml deleted file mode 100644 index e0a68175d07..00000000000 --- a/crates/nargo_cli/tests/target_tests_data/pass/import/Prover.toml +++ /dev/null @@ -1,2 +0,0 @@ -x = "" -y = "" diff --git a/crates/nargo_cli/tests/target_tests_data/pass/import/src/import.nr b/crates/nargo_cli/tests/target_tests_data/pass/import/src/import.nr deleted file mode 100644 index f557b362183..00000000000 --- a/crates/nargo_cli/tests/target_tests_data/pass/import/src/import.nr +++ /dev/null @@ -1,4 +0,0 @@ - -fn hello(x : Field) -> Field { - x -} \ No newline at end of file diff --git a/crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/Nargo.toml b/crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/Nargo.toml deleted file mode 100644 index f076963a94e..00000000000 --- a/crates/nargo_cli/tests/target_tests_data/pass_dev_mode/unused/Nargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "pass_dev_mode_unused" -type = "bin" -authors = [""] -compiler_version = "0.1" - -[dependencies]