difftreelog
test run go-jsonnet testsuite
181 files changed
tests/.gitignorediffbeforeafterboth1/cpp_test_suite1/cpp_test_suite2/go_testdata23tests/Cargo.tomldiffbeforeafterboth1[package]1[package]2name = "tests"2name = "tests"3version = "0.1.0"3version = "0.1.0"4edition = "2021"4edition = "2024"5publish = false5publish = false667[lints]7[lints]tests/cpp_test_suite_golden_override/error.function_infinite_default.jsonnet.goldendiffbeforeafterboth1runtime error: tried to manifest function1infinite recursion detected2 error.function_infinite_default.jsonnet:17:17-19: local <x> access3 error.function_infinite_default.jsonnet:17:12-14: local <y> access4 error.function_infinite_default.jsonnet:17:20-22: local <x> access5 during TLA calltests/cpp_test_suite_golden_override/error.function_no_default_arg.jsonnet.goldendiffbeforeafterboth1runtime error: tried to manifest function1function argument is not passed: a2Function has the following signature: (a = <default>, b)3 during TLA calltests/cpp_test_suite_golden_override/error.top_level_func.jsonnet.goldendiffbeforeafterboth1runtime error: tried to manifest function1function argument is not passed: name2Function has the following signature: (name)3 during TLA calltests/go_testdata_golden_override/array_comp_try_iterate_over_empty_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_comp_try_iterate_over_obj.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_comp_try_iterate_over_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_out_of_bounds.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_out_of_bounds2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_out_of_bounds3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_out_of_bounds4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/array_plus_bad.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/arrcomp5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/arrcomp_if4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/arrcomp_if6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/arrcomp_if7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/assert3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/assert_equal4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/assert_equal5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/assert_equal6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/assert_failed.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/assert_failed_custom.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bad_function_call.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bad_function_call2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bad_function_call_and_error.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bad_index_array.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bad_index_object.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bad_index_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/binaryNot2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_and3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_and4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_and7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_or10.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_shift4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_shift6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/bitwise_xor7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64DecodeBytes_high_codepoint.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64DecodeBytes_invalid_base64_data.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64DecodeBytes_wrong_type.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64Decode_high_codepoint.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64Decode_invalid_base64_data.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64Decode_wrong_type.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64_invalid_byte_array.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64_invalid_byte_array1.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64_invalid_byte_array2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinBase64_non_string_non_array.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinChar3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinChar5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinChar7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinIsEmpty2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinObjectFieldsEx_bad.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinObjectFieldsEx_bad2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinObjectHasExBadBoolean.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinObjectHasExBadField.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinObjectHasExBadObject.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinReverse_not_array.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSplitLimitR5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSubStr_first_param_not_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSubStr_second_parameter_not_integer.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSubStr_second_parameter_not_number.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSubStr_third_parameter_less_then_zero.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSubStr_third_parameter_not_integer.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinSubStr_third_parameter_not_number.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinTrim4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinXnor2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtinXor2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_exp3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_exp5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_log5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_log7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_log8.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_manifestTomlEx_array.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_manifestTomlEx_null.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_member_object_invalid.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_parseInt_invalid.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_parseInt_invalid_decimal.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_parseInt_invalid_hexadecimal.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_sqrt2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/builtin_stripChars_invalid.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/call_number.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/div4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/div_by_zero.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/dollar_bad.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/double_thunk.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_from_array.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_from_func.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_function_fail.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_hexnumber.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_in_method.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_in_object_local.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/error_object.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/extvar_error.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/extvar_hermetic.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/extvar_not_a_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/extvar_static_error.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/extvar_unknown.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/fieldname_not_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/function_manifested.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/function_plus_bad.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/function_plus_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/function_too_many_params.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/import_block_literal.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/import_computed.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/import_failure_directory.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/import_syntax_error.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/importbin_block_literal.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/importbin_computed.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/importstr_block_literal.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/importstr_computed.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/inf_min_number.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/inf_mul_number.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/inf_sum_number.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/insuper4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/insuper6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/lazy_operator2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/missing_super.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/native4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/native5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/native7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/native_error.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/native_panic.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/nonexistent_import.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/nonexistent_import_crazy.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/number_divided_by_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_assert.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_bad_field.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_bad_field2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_duplicate.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_err_elem.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_err_index.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_illegal.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_int_index.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_try_iterate_over_obj.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_comp_try_iterate_over_string.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant10.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant11.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant13.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant14.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant8.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant9.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant_plus.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant_plus2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_invariant_plus6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/object_plus_bad.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/optional_args11.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/optional_args13.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/optional_args8.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/optional_args9.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/or4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/or5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/or6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_bad.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_bad2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_bad3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_format_str4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_format_str5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_format_str6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_format_str7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/percent_mod_int5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/plus5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/pow4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/pow7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/pow8.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/pow9.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/recursive_thunk.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/stacktrace_assert.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/stacktrace_plussuper.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/static_error_eof.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.codepoint3.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.codepoint6.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.codepoint7.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.codepoint8.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.filter2.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.filter4.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.filter5.jsonnet.goldendiffbeforeafterbothno changes
tests/go_testdata_golden_override/std.filter6.jsonnet.goldendiffbeforeafterbothno changes
tests/tests/cpp_test_suite.rsdiffbeforeafterboth5};5};667use jrsonnet_evaluator::{7use jrsonnet_evaluator::{8 apply_tla,8 FileImportResolver, IStr, ObjValueBuilder, State, Val, apply_tla,9 function::TlaArg,9 function::TlaArg,10 gc::WithCapacityExt as _,10 gc::WithCapacityExt as _,11 manifest::JsonFormat,11 manifest::JsonFormat,12 rustc_hash::FxHashMap,12 rustc_hash::FxHashMap,13 trace::{CompactFormat, PathResolver, TraceFormat},13 trace::{CompactFormat, PathResolver, TraceFormat},14 FileImportResolver, IStr, ObjValueBuilder, State, Val,15};14};16use jrsonnet_stdlib::ContextInitializer;15use jrsonnet_stdlib::ContextInitializer;17mod common;16mod common;21 let mut s = State::builder();20 let mut s = State::builder();222123 let std_context = ContextInitializer::new(PathResolver::Relative(root.to_owned()));22 let std_context = ContextInitializer::new(PathResolver::Relative(root.to_owned()));23 // C++ test suite24 std_context.add_ext_str("var1".into(), "test".into());24 std_context.add_ext_str("var1".into(), "test".into());25 std_context25 std_context26 .add_ext_code("var2".into(), "{x:1,y:2}")26 .add_ext_code("var2".into(), "{x:1,y:2}")27 .expect("code is valid");27 .expect("code is valid");2829 // Golang test suite30 std_context31 .add_ext_code("codeVar".into(), "3+3")32 .expect("code is valid");33 std_context.add_ext_str("stringVar".into(), "2 + 2".into());34 std_context35 .add_ext_code(36 "selfRecursiveVar".into(),37 r#"[42, std.extVar("selfRecursiveVar")[0] + 1]"#,38 )39 .expect("code is valid");40 std_context41 .add_ext_code(42 "mutuallyRecursiveVar1".into(),43 r#"[42, std.extVar("mutuallyRecursiveVar2")[0] + 1]"#,44 )45 .expect("code is valid");46 std_context47 .add_ext_code(48 "mutuallyRecursiveVar2".into(),49 r#"[42, std.extVar("mutuallyRecursiveVar1")[0] + 1]"#,50 )51 .expect("code is valid");285229 s.context_initializer((std_context, TestContextInitializer))53 s.context_initializer((std_context, TestContextInitializer))30 .import_resolver(FileImportResolver::default());54 .import_resolver(FileImportResolver::default());64 }),88 }),65 );89 );66 v = apply_tla(&args, v).expect("failed to apply tla");90 v = apply_tla(&args, v).expect("failed to apply tla");67 }91 } else {92 v = match apply_tla(&FxHashMap::new(), v) {93 Ok(v) => v,94 Err(e) => return trace_format.format(&e).unwrap(),95 };96 }689769 match v.manifest(JsonFormat::default()) {98 match v.manifest(JsonFormat::default()) {70 Ok(v) => v,99 Ok(v) => v,81}110}8211183const SKIPPED: &[&str] = &[112const SKIPPED: &[&str] = &[113 // C++ tests:11484 // Parser fails with stack overflow. While is a bug, this is a too unusual115 // Parser fails with stack overflow. While is a bug, this is a too unusual85 // thing to run untrusted jsonnet code? Will be fixed with nom/rowan.116 // thing to run untrusted jsonnet code? Will be fixed with nom/rowan.86 "error.parse.deep_array_nesting.jsonnet",117 "error.parse.deep_array_nesting.jsonnet",87 // Runtime error in jrsonnet118 // Runtime, not static error in jrsonnet88 "error.parse.object_local_clash.jsonnet",119 "error.parse.object_local_clash.jsonnet",120 "error.function_duplicate_param.jsonnet",89 // Too slow to throw due to how lazyness is implemented in jrsonnet121 // Too slow to throw due to how lazyness is implemented in jrsonnet90 "error.recursive_object_non_term.jsonnet",122 "error.recursive_object_non_term.jsonnet",91 // In jrsonnet returns the one passed argument, works as Rust's dbg!()123 // In jrsonnet returns the one passed argument, works as Rust's dbg!()96 "invariant_manifest.jsonnet",128 "invariant_manifest.jsonnet",97 // Little bit hard to capture trace logs in this test suite at this moment129 // Little bit hard to capture trace logs in this test suite at this moment98 "trace.jsonnet",130 "trace.jsonnet",131 // Go tests:132133 // Something is wrong, go-jsonnet skips safe integer range check here134 "bitwise_or9.jsonnet",135 // Jrsonnet does not use byte strings, all utf8 is converted to bytes first136 "builtinBase64_string_high_codepoint.jsonnet",137 // Split by empty string is string characters, same as everywhere else138 "builtinSplitLimitR6.jsonnet",139 // escapeStringJson only accepts string in jrsonnet140 "builtin_escapeStringJson.jsonnet",141 // golang float formatting is inefficient and not portable142 "builtin_manifestTomlEx.jsonnet",143 "div3.jsonnet",144 "pow6.jsonnet",145 // golang escapes "e" yaml key, does it think it is float?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.173 "multi.jsonnet",174 "multi_no_newline.jsonnet",175 "multi_no_newline_string_output.jsonnet",176 "multi_string_output.jsonnet",177 // Tested otherwise178 "native1.jsonnet",179 "native2.jsonnet",180 "native3.jsonnet",181 "native6.jsonnet",182 // Since when parser should throw an error for that?..183 "number_leading_zero.jsonnet",184 // Jrsonnet has this overload185 "number_times_string.jsonnet",99];186];100187101#[test]188#[test]102fn cpp_test_suite() -> io::Result<()> {189fn cpp_test_suite() -> io::Result<()> {103 use json_structural_diff::JsonDiff;190 use json_structural_diff::JsonDiff;104191192 for root_dir in ["cpp_test_suite", "go_testdata"] {105 let root_tests = PathBuf::from(env!("CARGO_MANIFEST_DIR"));193 let root_tests = PathBuf::from(env!("CARGO_MANIFEST_DIR"));106 let root = root_tests.join("cpp_test_suite");194 let root = root_tests.join(root_dir);107 let root_override = root_tests.join("cpp_test_suite_golden_override");195 let root_override = root_tests.join(format!("{root_dir}_golden_override"));108196109 for entry in fs::read_dir(&root).map_err(|e| io::Error::new(ErrorKind::Other, format!("failed to enumerate cpp_test_suite dir (Note: it needs to be cloned from C++ jsonnet repo for this test): {e}")))? {197 for entry in fs::read_dir(&root).map_err(|e| io::Error::new(ErrorKind::Other, format!("failed to enumerate cpp_test_suite dir (Note: it needs to be cloned from C++ jsonnet repo for this test): {e}")))? {110 let entry = entry?;198 let entry = entry?;126 let mut golden_path = entry.path();214 let mut golden_path = entry.path();127 golden_path.set_extension("jsonnet.golden");215 golden_path.set_extension("jsonnet.golden");216217 let mut golden_path2 = entry.path();218 golden_path2.set_extension("golden");219128 let golden_override =220 let golden_override =129 root_override.join(&golden_path.file_name().expect("file has basename"));221 root_override.join(&golden_path.file_name().expect("file has basename"));130222223 // .jsonnet.golden for C++ tests131 let mut golden = read_file(&golden_path)?;224 let mut golden = read_file(&golden_path)?;132225 // .golden for Go tests226 if golden.is_none() && let Some(golden_path) = read_file(&dbg!(golden_path2))? {227 golden = Some(golden_path);228 }229230 // Any of them can be overriden by overrides133 if let Some(golden_path) = read_file(&golden_override)? {231 if let Some(golden_path) = read_file(&golden_override)? {134 golden = Some(golden_path);232 golden = Some(golden_path);135 }233 }136234235 // Otherwise assume test should just not fail and return true.137 let golden = golden.unwrap_or_else(|| "true".to_owned());236 let golden = golden.unwrap_or_else(|| "true".to_owned());138237139 match (serde_json::from_str(&result), serde_json::from_str(&golden)) {238 match (serde_json::from_str(&result), serde_json::from_str(&golden)) {172 }271 }173 };272 };174 }273 }274 }175275176 Ok(())276 Ok(())177}277}