difftreelog
test add cpp test suite golden overrides
in: master
98 files changed
tests/.gitignorediffbeforeafterboth--- /dev/null
+++ b/tests/.gitignore
@@ -0,0 +1 @@
+/cpp_test_suite
tests/cpp_test_suite_golden_override/error.01.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.01.jsonnet.golden
@@ -0,0 +1,5 @@
+runtime error: foo
+ error.01.jsonnet:17:29-41: error statement
+ error.01.jsonnet:18:29-40: function <bananas> call
+ error.01.jsonnet:19:28-39: function <oranges> call
+ error.01.jsonnet:20:1-11: function <apples> call
tests/cpp_test_suite_golden_override/error.02.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.02.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: Foo.
+ error.02.jsonnet:17:1-14: error statement
tests/cpp_test_suite_golden_override/error.03.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.03.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: foo
+ error.03.jsonnet:17:21-33: error statement
+ error.03.jsonnet:18:8-10: field <x> access
tests/cpp_test_suite_golden_override/error.04.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.04.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: foo
+ error.04.jsonnet:17:21-33: error statement
+ field <x> evaluation
tests/cpp_test_suite_golden_override/error.05.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.05.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: foo
+ error.05.jsonnet:17:21-33: error statement
+ field <x> evaluation
+ field <y> manifestification
tests/cpp_test_suite_golden_override/error.06.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.06.jsonnet.golden
@@ -0,0 +1,3 @@
+attempted to divide by zero
+ error.06.jsonnet:18:22-26: local <err> access
+ error.06.jsonnet:19:1-5: function <f> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.07.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.07.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: sarcasm
+ error.07.jsonnet:18:31-47: error statement
+ error.07.jsonnet:18:15-55: function <third> call
+ error.07.jsonnet:19:1-7: local <toxic> access
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.08.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.08.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: {"a": 1, "b": 2, "c": 3}
+ error.08.jsonnet:18:1-9: error statement
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.args_commafodder.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.args_commafodder.jsonnet.golden
@@ -0,0 +1,2 @@
+local is not defined: foo
+ error.args_commafodder.jsonnet:1:1-5: local <foo> access
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.array_fractional_index.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.array_fractional_index.jsonnet.golden
@@ -0,0 +1 @@
+tried to index by fractional value
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.array_index_string.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.array_index_string.jsonnet.golden
@@ -0,0 +1 @@
+attempted to index array with string foo
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.array_large_index.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.array_large_index.jsonnet.golden
@@ -0,0 +1 @@
+array out of bounds: 9223372036854775807 is not within [0,3)
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.array_recursive_manifest.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.array_recursive_manifest.jsonnet.golden
@@ -0,0 +1,201 @@
+stack overflow, try to reduce recursion, or set --max-stack to bigger value
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
+ elem <0> manifestification
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.assert.fail1.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.assert.fail1.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: null
+ error.assert.fail1.jsonnet:20:8-15: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.assert.fail2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.assert.fail2.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: foo was not equal to bar
+ error.assert.fail2.jsonnet:20:8-15: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.assert_equal_obj.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.assert_equal_obj.jsonnet.golden
@@ -0,0 +1,8 @@
+runtime error: assertion failed: A != B
+A: {
+ "a": 1
+}
+B: {
+ "b": 1
+}
+ error.assert_equal_obj.jsonnet:17:1-37: function <builtin_assert_equal> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.assert_equal_str.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.assert_equal_str.jsonnet.golden
@@ -0,0 +1,11 @@
+runtime error: assertion failed: A != B
+A: <A>
+one
+two
+</A>
+B: <B>
+three
+four
+
+</B>
+ error.assert_equal_str.jsonnet:17:1-46: function <builtin_assert_equal> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.comprehension_spec_object.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.comprehension_spec_object.jsonnet.golden
@@ -0,0 +1 @@
+for loop can only iterate over arrays
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.comprehension_spec_object2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.comprehension_spec_object2.jsonnet.golden
@@ -0,0 +1 @@
+for loop can only iterate over arrays
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.computed_field_scope.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.computed_field_scope.jsonnet.golden
@@ -0,0 +1,3 @@
+local is not defined: x
+ error.computed_field_scope.jsonnet:17:21-23: local <x> access
+ error.computed_field_scope.jsonnet:17:21-23: evaluating field name
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.decodeUTF8_float.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.decodeUTF8_float.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: cannot convert number with fractional part to u8
+ argument <arr> evaluation
+ error.decodeUTF8_float.jsonnet:1:1-24: function <builtin_decode_utf8> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.decodeUTF8_nan.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.decodeUTF8_nan.jsonnet.golden
@@ -0,0 +1,4 @@
+type error: expected BoundedNumber<0, 255>, got string at self[0]
+ array index 0
+ argument <arr> evaluation
+ error.decodeUTF8_nan.jsonnet:1:1-25: function <builtin_decode_utf8> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.divide_zero.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.divide_zero.jsonnet.golden
@@ -0,0 +1 @@
+attempted to divide by zero
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.equality_function.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.equality_function.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: cannot test equality of functions
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.field_not_exist.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.field_not_exist.jsonnet.golden
@@ -0,0 +1,2 @@
+no such field: y
+ error.field_not_exist.jsonnet:17:10-12: field <y> access
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.format.too_few_values.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.format.too_few_values.jsonnet.golden
@@ -0,0 +1,2 @@
+format error: not enough values
+ std.format of %d %d %d
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.function_duplicate_arg.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.function_duplicate_arg.jsonnet.golden
@@ -0,0 +1,2 @@
+argument x is already bound
+ error.function_duplicate_arg.jsonnet:17:1-30: function <anonymous> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.function_duplicate_param.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.function_duplicate_param.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: tried to manifest function
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.function_infinite_default.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.function_infinite_default.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: tried to manifest function
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.function_no_default_arg.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.function_no_default_arg.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: tried to manifest function
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.function_too_many_args.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.function_too_many_args.jsonnet.golden
@@ -0,0 +1,3 @@
+too many args, function has 2
+Function has the following signature: (a, b)
+ error.function_too_many_args.jsonnet:19:1-14: function <foo> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.import_empty.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.import_empty.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: special file can't be imported
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.import_static-check-failure.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.import_static-check-failure.jsonnet.golden
@@ -0,0 +1,3 @@
+local is not defined: x
+ static_check_failure.jsonnet:2:1-3: local <x> access
+ error.import_static-check-failure.jsonnet:1:1-43: import "lib/static_check_failure.jsonnet"
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.import_syntax-error.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.import_syntax-error.jsonnet.golden
@@ -0,0 +1,3 @@
+syntax error: expected one of "\\\\", "\\u", "\\x", ['"'], ['\\'], [_], got "EOF"
+ syntax_error.jsonnet:1:3
+ error.import_syntax-error.jsonnet:1:1-35: import "lib/syntax_error.jsonnet"
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.inside_equals_array.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.inside_equals_array.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: foobar
+ error.inside_equals_array.jsonnet:18:18-33: error statement
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.inside_equals_object.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.inside_equals_object.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: foobar
+ error.inside_equals_object.jsonnet:18:22-37: error statement
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.inside_tostring_array.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.inside_tostring_array.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: foobar
+ error.inside_tostring_array.jsonnet:17:8-23: error statement
+ elem <2> evaluation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.inside_tostring_object.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.inside_tostring_object.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: foobar
+ error.inside_tostring_object.jsonnet:17:12-27: error statement
+ field <b> evaluation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.integer_conversion.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.integer_conversion.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: numberic value outside of safe integer range for bitwise operation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.integer_left_shift.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.integer_left_shift.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: numberic value outside of safe integer range for bitwise operation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.integer_left_shift_runtime.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.integer_left_shift_runtime.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: left shift would overflow
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.invariant.avoid_output_change.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.invariant.avoid_output_change.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: null
+ error.invariant.avoid_output_change.jsonnet:18:10-25: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.invariant.equality.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.invariant.equality.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: null
+ error.invariant.equality.jsonnet:17:10-16: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.invariant.option.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.invariant.option.jsonnet.golden
@@ -0,0 +1,6 @@
+type error: expected array, got string
+ argument <a> evaluation
+ error.invariant.option.jsonnet:19:21-56: function <builtin_set_inter> call
+ argument <x> evaluation
+ error.invariant.option.jsonnet:19:10-57: function <builtin_length> call
+ error.invariant.option.jsonnet:19:10-61: assertion condition
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.invariant.simple.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.invariant.simple.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: null
+ error.invariant.simple.jsonnet:18:10-16: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.invariant.simple2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.invariant.simple2.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: my error message
+ error.invariant.simple2.jsonnet:18:10-17: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.invariant.simple3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.invariant.simple3.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: my error message
+ error.invariant.simple3.jsonnet:18:10-35: error statement
+ error.invariant.simple3.jsonnet:18:10-35: assertion condition
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.manifest_toml_null_value.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.manifest_toml_null_value.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: tried to manifest null
+ error.manifest_toml_null_value.jsonnet:17:1-55: function <builtin_manifest_toml_ex> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.manifest_toml_wrong_type.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.manifest_toml_wrong_type.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected object, got array
+ argument <value> evaluation
+ error.manifest_toml_wrong_type.jsonnet:17:1-30: function <builtin_manifest_toml_ex> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.negative_shfit.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.negative_shfit.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: shift by negative exponent
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.obj_assert.fail1.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.obj_assert.fail1.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: null
+ error.obj_assert.fail1.jsonnet:20:23-30: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.obj_assert.fail2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.obj_assert.fail2.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: foo was not equal to bar
+ error.obj_assert.fail2.jsonnet:20:23-30: assertion failure
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.obj_recursive.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.obj_recursive.jsonnet.golden
@@ -0,0 +1,201 @@
+stack overflow, try to reduce recursion, or set --max-stack to bigger value
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.obj_recursive_manifest.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.obj_recursive_manifest.jsonnet.golden
@@ -0,0 +1,201 @@
+stack overflow, try to reduce recursion, or set --max-stack to bigger value
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
+ field <x> manifestification
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.overflow.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.overflow.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: numbers are finite
+ error.overflow.jsonnet:17:6
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.overflow2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.overflow2.jsonnet.golden
@@ -0,0 +1 @@
+convert num value: non-finite
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.overflow3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.overflow3.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: numbers are finite
+ error.overflow3.jsonnet:17:6
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.array_comma.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.array_comma.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", ".", "?", "[", "]", "{", <binary op>, <comma>, got "3"
+ error.parse.array_comma.jsonnet:17:7
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.function_arg_positional_after_named.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.function_arg_positional_after_named.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", ".", "?", "[", "{", <binary op>, <comma>, <named argument>, got ")"
+ error.parse.function_arg_positional_after_named.jsonnet:19:11
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.import_not_literal.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.import_not_literal.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: computed imports are not supported
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.import_text_block.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.import_text_block.jsonnet.golden
@@ -0,0 +1,3 @@
+can't resolve This is a paragraph of text, which is being used in the place of
+a filename. That is quite unusual, and probably not intended.
+ from /home/lach/build/jrsonnet-pr/tests/cpp_test_suite/error.parse.import_text_block.jsonnet
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.index_unterminated.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.index_unterminated.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", ":", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "EOF"
+ error.parse.index_unterminated.jsonnet:17:4
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.method_plus.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.method_plus.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of ":", "::", ":::", got "+"
+ error.parse.method_plus.jsonnet:17:18
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.object_comma.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.object_comma.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", ".", "?", "[", "{", "}", <binary op>, got "z"
+ error.parse.object_comma.jsonnet:17:11
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.object_comprehension_local_clash.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.object_comprehension_local_clash.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", ".", "?", "[", "{", "}", <binary op>, <comma>, got ":"
+ error.parse.object_comprehension_local_clash.jsonnet:17:29
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.self_in_computed_field.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.self_in_computed_field.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "[", "}", <identifier>, <string>, ['"'], ['\''], got "s"
+ error.parse.self_in_computed_field.jsonnet:17:15
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.static_error_bad_number.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.static_error_bad_number.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "."
+ error.parse.static_error_bad_number.jsonnet:17:1
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected <escape character>, got "o"
+ error.parse.string.invalid_escape.jsonnet:17:3
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_non_hex.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_non_hex.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected <hex char>, got "t"
+ error.parse.string.invalid_escape_unicode_non_hex.jsonnet:17:7
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_short.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_short.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected <hex char>, got "\n"
+ error.parse.string.invalid_escape_unicode_short.jsonnet:17:7
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_short2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_short2.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected <hex char>, got "\""
+ error.parse.string.invalid_escape_unicode_short2.jsonnet:17:7
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_short3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.invalid_escape_unicode_short3.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected <hex char>, got "\n"
+ error.parse.string.invalid_escape_unicode_short3.jsonnet:17:7
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.unfinished.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.unfinished.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "\\\\", "\\u", "\\x", ['"'], ['\\'], [_], got "EOF"
+ error.parse.string.unfinished.jsonnet:17:3
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string.unfinished2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string.unfinished2.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "\\\\", "\\u", "\\x", ['\''], ['\\'], [_], got "EOF"
+ error.parse.string.unfinished2.jsonnet:17:3
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.string_multi_no_newline.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.string_multi_no_newline.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "|"
+ error.parse.string_multi_no_newline.jsonnet:17:1
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.text_block_bad_whitespace.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.text_block_bad_whitespace.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "|"
+ error.parse.text_block_bad_whitespace.jsonnet:17:1
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.text_block_eof.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.text_block_eof.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "|"
+ error.parse.text_block_eof.jsonnet:17:1
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse.text_block_not_terminated.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse.text_block_not_terminated.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "|"
+ error.parse.text_block_not_terminated.jsonnet:17:1
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.parse_json.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.parse_json.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: failed to parse json: expected value at line 1 column 1
+ error.parse_json.jsonnet:1:1-30: function <builtin_parse_json> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.recursive_function_nonterm.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.recursive_function_nonterm.jsonnet.golden
@@ -0,0 +1,201 @@
+stack overflow, try to reduce recursion, or set --max-stack to bigger value
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:18:3-8: function <f> call
+ error.recursive_function_nonterm.jsonnet:20:1-7: function <f> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.recursive_import.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.recursive_import.jsonnet.golden
@@ -0,0 +1,2 @@
+infinite recursion detected
+ error.recursive_import.jsonnet:17:15-55: import "error.recursive_import.jsonnet"
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.sanity.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.sanity.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: assertion failed: A != B
+A: 1
+B: 2
+ error.sanity.jsonnet:17:1-23: function <builtin_assert_equal> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.static_error_self.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.static_error_self.jsonnet.golden
@@ -0,0 +1,2 @@
+self is only usable inside objects
+ elem <0> evaluation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.static_error_super.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.static_error_super.jsonnet.golden
@@ -0,0 +1,2 @@
+no super found
+ elem <0> evaluation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.static_error_var_not_exist.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.static_error_var_not_exist.jsonnet.golden
@@ -0,0 +1,3 @@
+local is not defined: tmp2
+There is a local with similar name present: tmp
+ error.static_error_var_not_exist.jsonnet:17:16-21: local <tmp2> access
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.std_join_types1.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.std_join_types1.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: in std.join all items should be strings
+ error.std_join_types1.jsonnet:17:1-27: function <builtin_join> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.std_join_types2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.std_join_types2.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: in std.join all items should be arrays
+ error.std_join_types2.jsonnet:17:1-32: function <builtin_join> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.std_makeArray_negative.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.std_makeArray_negative.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: number out of bounds: -10 not in 0..2147483647
+ argument <sz> evaluation
+ error.std_makeArray_negative.jsonnet:17:1-38: function <builtin_make_array> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.std_maxArray.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.std_maxArray.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: expected non-empty array
+ error.std_maxArray.jsonnet:1:1-18: function <builtin_max_array> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.std_minArray.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.std_minArray.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: expected non-empty array
+ error.std_minArray.jsonnet:1:1-18: function <builtin_min_array> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.std_parseJson.nodigitsep.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.std_parseJson.nodigitsep.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: failed to parse json: trailing characters at line 1 column 4
+ error.std_parseJson.nodigitsep.jsonnet:1:1-26: function <builtin_parse_json> call
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.top_level_func.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.top_level_func.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: tried to manifest function
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.trace_three_param.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.trace_three_param.jsonnet.golden
@@ -0,0 +1,5 @@
+too many args, function has 2
+Function has the following signature: (str, rest = <default>)
+ error.trace_three_param.jsonnet:17:11-33: function <builtin_trace> call
+ error.trace_three_param.jsonnet:19:6-8: local <v> access
+ field <a> evaluation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.trace_zero_param.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.trace_zero_param.jsonnet.golden
@@ -0,0 +1,5 @@
+function argument is not passed: str
+Function has the following signature: (str, rest = <default>)
+ error.trace_zero_param.jsonnet:17:11-23: function <builtin_trace> call
+ error.trace_zero_param.jsonnet:19:6-8: local <v> access
+ field <a> evaluation
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.verbatim_import.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.verbatim_import.jsonnet.golden
@@ -0,0 +1 @@
+can't resolve C:\can't possibly exist~ from /home/lach/build/jrsonnet-pr/tests/cpp_test_suite/error.verbatim_import.jsonnet
\ No newline at end of file
tests/cpp_test_suite_golden_override/error.wrong_type.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/cpp_test_suite_golden_override/error.wrong_type.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected char, got number
+ argument <str> evaluation
+ error.wrong_type.jsonnet:1:1-19: function <builtin_codepoint> call
\ No newline at end of file
tests/tests/cpp_test_suite.rsdiffbeforeafterboth1use std::{2 env, fs,3 io::{self, ErrorKind},4 path::{Path, PathBuf},5};67use jrsonnet_evaluator::{8 apply_tla,9 function::TlaArg,10 gc::WithCapacityExt as _,11 manifest::JsonFormat,12 rustc_hash::FxHashMap,13 trace::{CompactFormat, PathResolver, TraceFormat},14 FileImportResolver, IStr, ObjValueBuilder, State, Val,15};16use jrsonnet_stdlib::ContextInitializer;17mod common;18use common::ContextInitializer as TestContextInitializer;1920fn run(file: &Path, root: &Path) -> String {21 let mut s = State::builder();2223 let std_context = ContextInitializer::new(PathResolver::Relative(root.to_owned()));24 std_context.add_ext_str("var1".into(), "test".into());25 std_context26 .add_ext_code("var2".into(), "{x:1,y:2}")27 .expect("code is valid");2829 s.context_initializer((std_context, TestContextInitializer))30 .import_resolver(FileImportResolver::default());31 let s = s.build();3233 let trace_format = CompactFormat {34 resolver: PathResolver::FileName,35 max_trace: 20,36 padding: 4,37 };3839 let mut v = match s.import(file) {40 Ok(v) => v,41 Err(e) => return trace_format.format(&e).unwrap(),42 };4344 if file45 .file_name()46 .expect("file has basename")47 .to_str()48 .expect("jsonnet testsuite has ascii names")49 .starts_with("tla.")50 {51 let mut args = FxHashMap::new();52 args.insert(IStr::from("var1"), TlaArg::String("test".into()));53 args.insert(54 IStr::from("var2"),55 TlaArg::Val({56 let mut o = ObjValueBuilder::new();5758 o.field("x").value(Val::num(1));59 o.field("y").value(Val::num(2));6061 Val::Obj(o.build())62 }),63 );64 v = apply_tla(s, &args, v).expect("failed to apply tla");65 }6667 match v.manifest(JsonFormat::default()) {68 Ok(v) => v,69 Err(e) => trace_format.format(&e).unwrap(),70 }71}7273fn read_file(path: &Path) -> io::Result<Option<String>> {74 match fs::read_to_string(path) {75 Ok(v) => Ok(Some(v)),76 Err(e) if e.kind() == ErrorKind::NotFound => Ok(None),77 Err(e) => Err(e),78 }79}8081const SKIPPED: &[&str] = &[82 // Parser fails with stack overflow. While is a bug, this is a too unusual83 // thing to run untrusted jsonnet code? Will be fixed with nom/rowan.84 "error.parse.deep_array_nesting.jsonnet",85 // Runtime error in jrsonnet86 "error.parse.object_local_clash.jsonnet",87 // Too slow to throw due to how lazyness is implemented in jrsonnet88 "error.recursive_object_non_term.jsonnet",89 // In jrsonnet returns the one passed argument, works as Rust's dbg!()90 "error.trace_one_param.jsonnet",91 // In jrsonnet can display any value92 "error.trace_two_param.jsonnet",93 // Depends on unsafe handling of strings as arrays in jsonnet stdlib94 "invariant_manifest.jsonnet",95 // Little bit hard to capture trace logs in this test suite at this moment96 "trace.jsonnet",97];9899#[test]100fn cpp_test_suite() -> io::Result<()> {101 use json_structural_diff::JsonDiff;102103 let root_tests = PathBuf::from(env!("CARGO_MANIFEST_DIR"));104 let root = root_tests.join("cpp_test_suite");105 let root_override = root_tests.join("cpp_test_suite_golden_override");106107 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}")))? {108 let entry = entry?;109 if !entry.path().extension().map_or(false, |e| e == "jsonnet") {110 continue;111 }112113 if entry114 .path()115 .file_name()116 .and_then(|v| v.to_str())117 .map_or(false, |v| SKIPPED.contains(&v))118 {119 continue;120 }121122 let result = run(&entry.path(), &root);123124 let mut golden_path = entry.path();125 golden_path.set_extension("jsonnet.golden");126 let golden_override =127 root_override.join(&golden_path.file_name().expect("file has basename"));128129 let mut golden = read_file(&golden_path)?;130131 if let Some(golden_path) = read_file(&golden_override)? {132 golden = Some(golden_path);133 }134135 let golden = golden.unwrap_or_else(|| "true".to_owned());136137 match (serde_json::from_str(&result), serde_json::from_str(&golden)) {138 (Err(_), Ok(_)) => panic!(139 "unexpected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",140 entry.path().display()141 ),142 (Ok(_), Err(_)) => panic!(143 "expected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",144 entry.path().display()145 ),146 (Ok(result), Ok(golden)) => {147 // Show diff relative to golden`.148 let diff = JsonDiff::diff_string(&golden, &result, false);149 if let Some(diff) = diff {150 panic!(151 "Result \n{result:#}\n\152 and golden \n{golden:#}\n\153 did not match structurally:\n{diff:#}\n\154 for golden {}",155 entry.path().display()156 );157 }158 }159 (Err(_), Err(_)) => {160 if result != golden.trim_end() {161 if env::var_os("UPDATE_GOLDEN").is_some() {162 fs::write(golden_override, result)?;163 } else {164 panic!(165 "golden didn't match for {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",166 entry.path().display()167 )168 }169 }170 }171 };172 }173174 Ok(())175}