difftreelog
test re-enable structural matching
in: master
4 files changed
Cargo.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",
]
Cargo.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]
tests/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]
tests/tests/cpp_test_suite.rsdiffbeforeafterboth144 "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 // Result149 // [150 // {},151 // {},152 // []153 // ]154 // and golden155 // [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 overload185 "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 be187 // evaluated anyway...188 "std.filter7.jsonnet",189 // Golang fails with max stack frames exceeded error161 // Golang fails with max stack frames exceeded error190 "std.makeArray_recursive_evalutation_order_matters.jsonnet",162 "std.makeArray_recursive_evalutation_order_matters.jsonnet",191 // Jrsonnet has this overload163 // Jrsonnet has this overload196168197#[test]169#[test]198fn cpp_test_suite() -> io::Result<()> {170fn cpp_test_suite() -> io::Result<()> {199 use json_structural_diff::JsonDiff;200201 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;263233264 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 }