From f6e0247c78b1c78872db34f50ec1be9cd55935d6 Mon Sep 17 00:00:00 2001 From: Giacomo Cavalieri Date: Sun, 2 Mar 2025 11:35:29 +0100 Subject: [PATCH] move output tests to their own project --- Cargo.lock | 11 +++++++++++ Cargo.toml | 1 + compiler-cli/src/fs.rs | 2 +- compiler-cli/src/lib.rs | 6 ++---- compiler-cli/src/run.rs | 2 +- test-output/Cargo.toml | 15 +++++++++++++++ test-output/src/lib.rs | 2 ++ {compiler-cli => test-output}/src/tests.rs | 0 {compiler-cli => test-output}/src/tests/echo.rs | 7 +++---- .../test_output__tests__echo__echo_bool.snap | 2 +- .../test_output__tests__echo__echo_dict.snap | 2 +- .../test_output__tests__echo__echo_function.snap | 2 +- ...echo__echo_importing_module_named_inspect.snap | 2 +- .../test_output__tests__echo__echo_int.snap | 2 +- .../test_output__tests__echo__echo_list.snap | 2 +- .../test_output__tests__echo__echo_nil.snap | 2 +- .../test_output__tests__echo__echo_string.snap | 2 +- .../test_output__tests__echo__echo_tuple.snap | 2 +- ...output__tests__echo__erlang-echo_bitarray.snap | 2 +- ...put__tests__echo__erlang-echo_custom_type.snap | 2 +- ...st_output__tests__echo__erlang-echo_float.snap | 2 +- ...ut__tests__echo__javascript-echo_bitarray.snap | 2 +- ..._tests__echo__javascript-echo_custom_type.snap | 2 +- ...utput__tests__echo__javascript-echo_float.snap | 2 +- 24 files changed, 51 insertions(+), 25 deletions(-) create mode 100644 test-output/Cargo.toml create mode 100644 test-output/src/lib.rs rename {compiler-cli => test-output}/src/tests.rs (100%) rename {compiler-cli => test-output}/src/tests/echo.rs (96%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_bool.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_bool.snap (84%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_dict.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_dict.snap (89%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_function.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_function.snap (87%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_importing_module_named_inspect.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_importing_module_named_inspect.snap (82%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_int.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_int.snap (86%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_list.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_list.snap (84%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_nil.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_nil.snap (80%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_string.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_string.snap (90%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_tuple.snap => test-output/src/tests/snapshots/test_output__tests__echo__echo_tuple.snap (85%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_bitarray.snap => test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_bitarray.snap (88%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_custom_type.snap => test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_custom_type.snap (90%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_float.snap => test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_float.snap (86%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_bitarray.snap => test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_bitarray.snap (88%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_custom_type.snap => test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_custom_type.snap (91%) rename compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_float.snap => test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_float.snap (86%) diff --git a/Cargo.lock b/Cargo.lock index bb984252beb..a7cc65f9a8d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2973,6 +2973,17 @@ dependencies = [ "walkdir", ] +[[package]] +name = "test-output" +version = "1.8.1" +dependencies = [ + "camino", + "gleam-cli", + "gleam-core", + "insta", + "test-helpers-rs", +] + [[package]] name = "test-package-compiler" version = "1.8.1" diff --git a/Cargo.toml b/Cargo.toml index bbb27cd8e8f..10ce87218ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "compiler-core", "compiler-wasm", "test-helpers-rs", + "test-output", "test-package-compiler", "test-project-compiler", ] diff --git a/compiler-cli/src/fs.rs b/compiler-cli/src/fs.rs index 4f042a33dae..68f565eea98 100644 --- a/compiler-cli/src/fs.rs +++ b/compiler-cli/src/fs.rs @@ -81,7 +81,7 @@ pub fn get_distro_str() -> String { } /// A `FileWriter` implementation that writes to the file system. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Default)] pub struct ProjectIO { beam_compiler: Arc>, } diff --git a/compiler-cli/src/lib.rs b/compiler-cli/src/lib.rs index 618addcb4f2..0b8319828da 100644 --- a/compiler-cli/src/lib.rs +++ b/compiler-cli/src/lib.rs @@ -60,7 +60,7 @@ mod docs; mod export; mod fix; mod format; -mod fs; +pub mod fs; mod hex; mod http; mod lsp; @@ -68,10 +68,8 @@ mod new; mod panic; mod publish; mod remove; -mod run; +pub mod run; mod shell; -#[cfg(test)] -mod tests; use config::root_config; use dependencies::UseManifest; diff --git a/compiler-cli/src/run.rs b/compiler-cli/src/run.rs index a45b27d11f1..36ac5946ac9 100644 --- a/compiler-cli/src/run.rs +++ b/compiler-cli/src/run.rs @@ -45,7 +45,7 @@ pub fn command( std::process::exit(status); } -pub(crate) fn setup( +pub fn setup( paths: &ProjectPaths, arguments: Vec, target: Option, diff --git a/test-output/Cargo.toml b/test-output/Cargo.toml new file mode 100644 index 00000000000..6cfbf78f0dd --- /dev/null +++ b/test-output/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "test-output" +version = "1.8.1" +authors = ["Louis Pilfold "] +edition = "2024" +license = "Apache-2.0" + +[dependencies] +gleam-core = { path = "../compiler-core" } +gleam-cli = { path = "../compiler-cli" } +test-helpers-rs = { path = "../test-helpers-rs" } +camino = { workspace = true, features = ["serde1"] } + +[dev-dependencies] +insta.workspace = true diff --git a/test-output/src/lib.rs b/test-output/src/lib.rs new file mode 100644 index 00000000000..87c2771955a --- /dev/null +++ b/test-output/src/lib.rs @@ -0,0 +1,2 @@ +#[cfg(test)] +mod tests; diff --git a/compiler-cli/src/tests.rs b/test-output/src/tests.rs similarity index 100% rename from compiler-cli/src/tests.rs rename to test-output/src/tests.rs diff --git a/compiler-cli/src/tests/echo.rs b/test-output/src/tests/echo.rs similarity index 96% rename from compiler-cli/src/tests/echo.rs rename to test-output/src/tests/echo.rs index b638bb8d968..ae9aa6f92e1 100644 --- a/compiler-cli/src/tests/echo.rs +++ b/test-output/src/tests/echo.rs @@ -7,7 +7,7 @@ use gleam_core::{ paths::ProjectPaths, }; -use crate::{ +use gleam_cli::{ fs, run::{self, Which}, }; @@ -17,9 +17,8 @@ fn run_and_produce_pretty_snapshot( runtime: Option, project_directory: Utf8PathBuf, ) -> String { - let paths = fs::get_project_root(project_directory) - .map(ProjectPaths::new) - .expect("project paths"); + let project_root = fs::get_project_root(project_directory).expect("project root"); + let paths = ProjectPaths::new(project_root); let output = run_and_capture_output(&paths, "main", target, runtime) // Echo's output includes paths, so we need this to make sure tests do diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_bool.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_bool.snap similarity index 84% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_bool.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_bool.snap index 923b34ae4cf..0d47d0cec22 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_bool.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_bool.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_dict.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_dict.snap similarity index 89% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_dict.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_dict.snap index 15b81106c63..02e739eda44 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_dict.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_dict.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_function.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_function.snap similarity index 87% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_function.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_function.snap index 73f92bf3d35..5c57deb14c8 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_function.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_function.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_importing_module_named_inspect.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_importing_module_named_inspect.snap similarity index 82% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_importing_module_named_inspect.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_importing_module_named_inspect.snap index 8473fdcbf4f..8e6ee45a548 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_importing_module_named_inspect.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_importing_module_named_inspect.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_int.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_int.snap similarity index 86% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_int.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_int.snap index e8c804f0fcd..37bdb2f9824 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_int.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_int.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_list.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_list.snap similarity index 84% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_list.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_list.snap index 50af83893f9..7c5deb77acc 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_list.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_list.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_nil.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_nil.snap similarity index 80% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_nil.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_nil.snap index c4e51a8a98a..9efae2bbb1b 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_nil.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_nil.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_string.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_string.snap similarity index 90% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_string.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_string.snap index 4e9fd1766ee..a32c346179b 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_string.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_string.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_tuple.snap b/test-output/src/tests/snapshots/test_output__tests__echo__echo_tuple.snap similarity index 85% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_tuple.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__echo_tuple.snap index 352d2c10e0f..060de9338d2 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__echo_tuple.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__echo_tuple.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_bitarray.snap b/test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_bitarray.snap similarity index 88% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_bitarray.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_bitarray.snap index 59de602e00c..aeea2ea3437 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_bitarray.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_bitarray.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_custom_type.snap b/test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_custom_type.snap similarity index 90% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_custom_type.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_custom_type.snap index eb54366742a..4f765c50004 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_custom_type.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_custom_type.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_float.snap b/test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_float.snap similarity index 86% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_float.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_float.snap index 8218407c0e8..fddd3785121 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__erlang-echo_float.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__erlang-echo_float.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_bitarray.snap b/test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_bitarray.snap similarity index 88% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_bitarray.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_bitarray.snap index 53095d6f514..b4e920298df 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_bitarray.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_bitarray.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_custom_type.snap b/test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_custom_type.snap similarity index 91% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_custom_type.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_custom_type.snap index 2cd1527f8a9..f5c22bb008f 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_custom_type.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_custom_type.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ---------------------- diff --git a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_float.snap b/test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_float.snap similarity index 86% rename from compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_float.snap rename to test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_float.snap index 0be511395b9..3644712edc2 100644 --- a/compiler-cli/src/tests/snapshots/gleam_cli__tests__echo__javascript-echo_float.snap +++ b/test-output/src/tests/snapshots/test_output__tests__echo__javascript-echo_float.snap @@ -1,5 +1,5 @@ --- -source: compiler-cli/src/tests/echo.rs +source: test-output/src/tests/echo.rs expression: output --- --- main.gleam ----------------------