diff --git a/.gitignore b/.gitignore index 5045cf3..35411fe 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ debug .spr.yml .DS_Store **/.snfoudry_cache +*.snap.new diff --git a/Cargo.lock b/Cargo.lock index 9e1748b..5c438de 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -213,6 +213,7 @@ dependencies = [ "cairo-lang-sierra-type-size", "camino", "derive_more", + "insta", "serde", "serde_json", "snapbox", @@ -383,6 +384,17 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "console" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" +dependencies = [ + "encode_unicode", + "libc", + "windows-sys", +] + [[package]] name = "const-fnv1a-hash" version = "1.1.0" @@ -561,6 +573,12 @@ dependencies = [ "log", ] +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "equivalent" version = "1.0.2" @@ -769,6 +787,18 @@ dependencies = [ "rustversion", ] +[[package]] +name = "insta" +version = "1.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0f8fee8c926415c58d6ae43a08523a26faccb2323f5e6b644fe7dd4ef6b82" +dependencies = [ + "console", + "once_cell", + "similar 2.7.0", + "tempfile", +] + [[package]] name = "intrusive-collections" version = "0.9.7" @@ -1585,6 +1615,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "similar" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + [[package]] name = "similar" version = "3.1.1" @@ -1625,7 +1661,7 @@ dependencies = [ "anstream", "anstyle", "normalize-line-endings", - "similar", + "similar 3.1.1", "snapbox-macros", ] @@ -1751,6 +1787,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", + "getrandom 0.3.4", "once_cell", "rustix", "windows-sys", diff --git a/Cargo.toml b/Cargo.toml index 3f7c995..0a93b2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,7 @@ serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" assert_fs = "1.1.3" snapbox = "1.2.1" +insta = "1" strum = "0.28" strum_macros = "0.28" regex = "1.12" diff --git a/crates/cairo-annotations/Cargo.toml b/crates/cairo-annotations/Cargo.toml index eb8bd5d..413e5ba 100644 --- a/crates/cairo-annotations/Cargo.toml +++ b/crates/cairo-annotations/Cargo.toml @@ -27,6 +27,7 @@ strum_macros.workspace = true assert_fs.workspace = true cairo-annotations = { path = ".", features = ["cairo-lang"] } cairo-lang-sierra-type-size.workspace = true +insta.workspace = true snapbox.workspace = true [features] diff --git a/crates/cairo-annotations/tests/helpers/mod.rs b/crates/cairo-annotations/tests/helpers/mod.rs index 7b79c46..c13a0e3 100644 --- a/crates/cairo-annotations/tests/helpers/mod.rs +++ b/crates/cairo-annotations/tests/helpers/mod.rs @@ -1,2 +1 @@ -pub mod output_same_as_in_file; pub mod test_project; diff --git a/crates/cairo-annotations/tests/helpers/output_same_as_in_file.rs b/crates/cairo-annotations/tests/helpers/output_same_as_in_file.rs deleted file mode 100644 index 4d8a65a..0000000 --- a/crates/cairo-annotations/tests/helpers/output_same_as_in_file.rs +++ /dev/null @@ -1,16 +0,0 @@ -use std::fmt::Debug; -use std::fs; - -pub trait AssertSameAsInFile { - fn assert_same_as_in_file(&self, expected_output_file_name: &str); -} - -impl AssertSameAsInFile for T { - fn assert_same_as_in_file(&self, expected_output_file_name: &str) { - let content = - fs::read_to_string(format!("tests/expected_output/{expected_output_file_name}")) - .unwrap(); - - assert_eq!(format!("{self:#?}"), content); - } -} diff --git a/crates/cairo-annotations/tests/integration/map_pcs_to_sierra_statement_ids.rs b/crates/cairo-annotations/tests/integration/map_pcs_to_sierra_statement_ids.rs index 5837bdf..5c39ab3 100644 --- a/crates/cairo-annotations/tests/integration/map_pcs_to_sierra_statement_ids.rs +++ b/crates/cairo-annotations/tests/integration/map_pcs_to_sierra_statement_ids.rs @@ -1,4 +1,3 @@ -use crate::helpers::output_same_as_in_file::AssertSameAsInFile; use crate::helpers::test_project::SCARB_TEMPLATE_TRACE_FILE; use cairo_annotations::map_pcs_to_sierra_statement_ids; use cairo_annotations::trace_data::CasmLevelInfo; @@ -11,7 +10,7 @@ fn test_happy_path() { SCARB_TEMPLATE_TRACE_FILE.get_casm_level_info(), ); - output.assert_same_as_in_file("map_pcs.txt"); + insta::assert_debug_snapshot!(output); } #[test] diff --git a/crates/cairo-annotations/tests/expected_output/map_pcs.txt b/crates/cairo-annotations/tests/integration/snapshots/r#mod__integration__map_pcs_to_sierra_statement_ids__happy_path.snap similarity index 99% rename from crates/cairo-annotations/tests/expected_output/map_pcs.txt rename to crates/cairo-annotations/tests/integration/snapshots/r#mod__integration__map_pcs_to_sierra_statement_ids__happy_path.snap index 0c30d48..b5b3c4e 100644 --- a/crates/cairo-annotations/tests/expected_output/map_pcs.txt +++ b/crates/cairo-annotations/tests/integration/snapshots/r#mod__integration__map_pcs_to_sierra_statement_ids__happy_path.snap @@ -1,3 +1,7 @@ +--- +source: crates/cairo-annotations/tests/integration/map_pcs_to_sierra_statement_ids.rs +expression: output +--- [ SierraStatementIdx( StatementIdx( @@ -7615,4 +7619,4 @@ 25, ), ), -] \ No newline at end of file +]