git.delta.rocks / jrsonnet / refs/commits / 7da68eaa8a4d

difftreelog

test re-enable structural matching

yzxkunvxYaroslav Bolyukin2026-03-23parent: #3a37893.patch.diff
in: master

4 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -283,12 +283,6 @@
 ]
 
 [[package]]
-name = "difflib"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
-
-[[package]]
 name = "digest"
 version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -807,17 +801,6 @@
 dependencies = [
  "once_cell",
  "wasm-bindgen",
-]
-
-[[package]]
-name = "json-structural-diff"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e878e36a8a44c158505c2c818abdc1350413ad83dcb774a0459f6a7ef2b65cbf"
-dependencies = [
- "difflib",
- "regex",
- "serde_json",
 ]
 
 [[package]]
@@ -1448,7 +1431,6 @@
  "jrsonnet-evaluator",
  "jrsonnet-gcmodule",
  "jrsonnet-stdlib",
- "json-structural-diff",
  "serde",
  "serde_json",
 ]
modifiedCargo.tomldiffbeforeafterboth
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -85,7 +85,6 @@
 regex = "1.12"
 lru = "0.16.3"
 
-json-structural-diff = "0.2.0"
 syn-dissect-closure = "0.1.0"
 
 [workspace.lints.rust]
modifiedtests/Cargo.tomldiffbeforeafterboth
--- a/tests/Cargo.toml
+++ b/tests/Cargo.toml
@@ -19,7 +19,6 @@
 jrsonnet-gcmodule.workspace = true
 jrsonnet-stdlib.workspace = true
 serde.workspace = true
-json-structural-diff.workspace = true
 serde_json.workspace = true
 
 [dev-dependencies]
modifiedtests/tests/cpp_test_suite.rsdiffbeforeafterboth
144 "pow6.jsonnet",144 "pow6.jsonnet",
145 // golang escapes "e" yaml key, does it think it is float?145 // golang escapes "e" yaml key, does it think it is float?
146 "builtin_manifestYamlDoc.jsonnet",146 "builtin_manifestYamlDoc.jsonnet",
147 // Wtf?..
148 // Result
149 // [
150 // {},
151 // {},
152 // []
153 // ]
154 // and golden
155 // [
156 // {},
157 // {},
158 // []
159 // ]
160 // did not match structurally:
161 // [
162 // ...
163 // - {
164 // - }
165 // + {
166 // + }
167 // [
168 // ]
169 // ]
170 "empty_object_comp.jsonnet",
171 "object_hidden.jsonnet",
172 // multi output is a CLI part, not an interpreter.147 // multi output is a CLI part, not an interpreter.
173 "multi.jsonnet",148 "multi.jsonnet",
174 "multi_no_newline.jsonnet",149 "multi_no_newline.jsonnet",
183 "number_leading_zero.jsonnet",158 "number_leading_zero.jsonnet",
184 // Jrsonnet has this overload159 // Jrsonnet has this overload
185 "number_times_string.jsonnet",160 "number_times_string.jsonnet",
186 // Jrsonnet has stricter implementations, this is a dumb thing that the filter value might not be
187 // evaluated anyway...
188 "std.filter7.jsonnet",
189 // Golang fails with max stack frames exceeded error161 // Golang fails with max stack frames exceeded error
190 "std.makeArray_recursive_evalutation_order_matters.jsonnet",162 "std.makeArray_recursive_evalutation_order_matters.jsonnet",
191 // Jrsonnet has this overload163 // Jrsonnet has this overload
196168
197#[test]169#[test]
198fn cpp_test_suite() -> io::Result<()> {170fn cpp_test_suite() -> io::Result<()> {
199 use json_structural_diff::JsonDiff;
200
201 for root_dir in ["cpp_test_suite", "go_testdata"] {171 for root_dir in ["cpp_test_suite", "go_testdata"] {
202 let root_tests = PathBuf::from(env!("CARGO_MANIFEST_DIR"));172 let root_tests = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
261 #[cfg(not(feature = "ir-parser"))]231 #[cfg(not(feature = "ir-parser"))]
262 let update_golden_path = &golden_override;232 let update_golden_path = &golden_override;
263233
264 match (serde_json::from_str(&result), serde_json::from_str(&golden)) {234 match (serde_json::from_str::<serde_json::Value>(&result), serde_json::from_str::<serde_json::Value>(&golden)) {
265 (Err(_), Ok(_)) => panic!(235 (Err(_), Ok(_)) => panic!(
266 "unexpected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",236 "unexpected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",
267 entry.path().display()237 entry.path().display()
270 "expected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",240 "expected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",
271 entry.path().display()241 entry.path().display()
272 ),242 ),
273 (Ok(result_v), Ok(golden)) => {243 (Ok(result_v), Ok(golden_v)) => {
274 // Show diff relative to golden`.
275 let diff = JsonDiff::diff_string(&golden, &result_v, false);
276 if let Some(diff) = diff {244 if result_v != golden_v {
277 if env::var_os("UPDATE_GOLDEN").is_some() {245 if env::var_os("UPDATE_GOLDEN").is_some() {
278 fs::write(update_golden_path, result)?;246 fs::write(update_golden_path, result)?;
279 } else {247 } else {
280 panic!(248 panic!(
281 "Result \n{result_v:#}\n\249 "Result \n{result_v:#}\n\
282 and golden \n{golden:#}\n\250 and golden \n{golden_v:#}\n\
283 did not match structurally:\n{diff:#}\n\251 did not match structurally\n\
284 for golden {}",252 for golden {}",
285 entry.path().display()253 entry.path().display()
286 );254 );
287 }255 }