difftreelog
test pass full go-jsonnet test suite
in: master
54 files changed
crates/jrsonnet-evaluator/src/evaluate/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/evaluate/mod.rs
+++ b/crates/jrsonnet-evaluator/src/evaluate/mod.rs
@@ -532,17 +532,23 @@
)),
(Val::Str(s), Val::Num(n)) => Val::Str({
+ let n = n.get();
+ if n.fract() > f64::EPSILON {
+ bail!(FractionalIndex)
+ }
+ if n < 0.0 {
+ bail!(ArrayBoundsError(n as isize, s.into_flat().chars().count()));
+ }
let v: IStr = s
.clone()
.into_flat()
.chars()
- .skip(n.get() as usize)
+ .skip(n as usize)
.take(1)
.collect::<String>()
.into();
if v.is_empty() {
- let size = s.into_flat().chars().count();
- bail!(StringBoundsError(n.get() as usize, size))
+ bail!(StringBoundsError(n as usize, s.into_flat().chars().count()))
}
StrValue::Flat(v)
}),
crates/jrsonnet-stdlib/src/math.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/math.rs
+++ b/crates/jrsonnet-stdlib/src/math.rs
@@ -168,12 +168,12 @@
#[builtin]
pub fn builtin_deg2rad(x: f64) -> f64 {
- x * f64::consts::PI / 180.0
+ x.to_radians()
}
#[builtin]
pub fn builtin_rad2deg(x: f64) -> f64 {
- x * 180.0 / f64::consts::PI
+ x.to_degrees()
}
#[builtin]
crates/jrsonnet-stdlib/src/sort.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/sort.rs
+++ b/crates/jrsonnet-stdlib/src/sort.rs
@@ -17,6 +17,7 @@
enum SortKeyType {
Number,
String,
+ Unspecialized,
Unknown,
}
@@ -31,7 +32,7 @@
(Val::Str(_) | Val::Num(_), _) => {
bail!("sort elements should have the same types")
}
- _ => {}
+ (_, _) => return Ok(SortKeyType::Unspecialized),
}
}
Ok(sort_type)
@@ -49,7 +50,7 @@
Val::Str(s) => s.clone(),
_ => unreachable!(),
}),
- SortKeyType::Unknown => {
+ SortKeyType::Unknown | SortKeyType::Unspecialized => {
let mut err = None;
// evaluate_compare_op will never return equal on types, which are different from
// jsonnet perspective
@@ -88,7 +89,7 @@
Val::Str(s) => s.clone(),
_ => unreachable!(),
}),
- SortKeyType::Unknown => {
+ SortKeyType::Unknown | SortKeyType::Unspecialized => {
let mut err = None;
// evaluate_compare_op will never return equal on types, which are different from
// jsonnet perspective
crates/jrsonnet-stdlib/src/strings.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/strings.rs
+++ b/crates/jrsonnet-stdlib/src/strings.rs
@@ -25,8 +25,11 @@
}
#[builtin]
-pub fn builtin_str_replace(str: String, from: IStr, to: IStr) -> String {
- str.replace(&from as &str, &to as &str)
+pub fn builtin_str_replace(str: String, from: IStr, to: IStr) -> Result<String> {
+ if from.is_empty() {
+ bail!("'from' string must not be zero length");
+ }
+ Ok(str.replace(&from as &str, &to as &str))
}
#[builtin]
tests/go_testdata_golden_override/builtinObjectRemoveKey_super_assert.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/builtinObjectRemoveKey_super_assert.jsonnet.golden
@@ -0,0 +1,3 @@
+no such field: x
+ builtinObjectRemoveKey_super_assert.jsonnet:2:15-17: field <x> access
+ builtinObjectRemoveKey_super_assert.jsonnet:2:10-17: assertion condition
\ No newline at end of file
tests/go_testdata_golden_override/std.filter8.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.filter8.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected function, got array
+ argument <func> evaluation
+ std.filter8.jsonnet:1:1-37: function <builtin_filter> call
\ No newline at end of file
tests/go_testdata_golden_override/std.filter_swapped_args.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.filter_swapped_args.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected function, got array
+ argument <func> evaluation
+ std.filter_swapped_args.jsonnet:1:1-39: function <builtin_filter> call
\ No newline at end of file
tests/go_testdata_golden_override/std.flatmap5.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.flatmap5.jsonnet.golden
@@ -0,0 +1,5 @@
+runtime error: a
+ std.flatmap5.jsonnet:1:21-29: error statement
+ std.flatmap5.jsonnet:2:10-49: function <builtin_flatmap> call
+ argument <x> evaluation
+ std.flatmap5.jsonnet:2:1-50: function <builtin_type> call
\ No newline at end of file
tests/go_testdata_golden_override/std.join7.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.join7.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: in std.join all items should be strings
+ std.join7.jsonnet:1:1-28: function <builtin_join> call
\ No newline at end of file
tests/go_testdata_golden_override/std.join8.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.join8.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: in std.join all items should be arrays
+ std.join8.jsonnet:1:1-34: function <builtin_join> call
\ No newline at end of file
tests/go_testdata_golden_override/std.makeArrayNamed3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.makeArrayNamed3.jsonnet.golden
@@ -0,0 +1,2 @@
+parameter blahblah is not defined
+ std.makeArrayNamed3.jsonnet:1:1-55: function <builtin_make_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.makeArray_bad.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.makeArray_bad.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected BoundedNumber<0, 2147483647>, got string
+ argument <sz> evaluation
+ std.makeArray_bad.jsonnet:1:1-37: function <builtin_make_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.makeArray_bad2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.makeArray_bad2.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected function, got string
+ argument <func> evaluation
+ std.makeArray_bad2.jsonnet:1:1-26: function <builtin_make_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.makeArray_noninteger.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.makeArray_noninteger.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: cannot convert number with fractional part to i32
+ argument <sz> evaluation
+ std.makeArray_noninteger.jsonnet:1:1-35: function <builtin_make_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.makeArray_noninteger_big.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.makeArray_noninteger_big.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: number out of bounds: 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 not in 0..2147483647
+ argument <sz> evaluation
+ std.makeArray_noninteger_big.jsonnet:1:1-37: function <builtin_make_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.manifestYamlDoc_error.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.manifestYamlDoc_error.jsonnet.golden
@@ -0,0 +1,5 @@
+runtime error: foo
+ std.manifestYamlDoc_error.jsonnet:1:31-43: error statement
+ field <y> evaluation
+ field <x> manifestification
+ std.manifestYamlDoc_error.jsonnet:1:1-48: function <builtin_manifest_yaml_doc> call
\ No newline at end of file
tests/go_testdata_golden_override/std.mantissa2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.mantissa2.jsonnet.golden
@@ -0,0 +1 @@
+0.6562500000000002
\ No newline at end of file
tests/go_testdata_golden_override/std.mantissa3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.mantissa3.jsonnet.golden
@@ -0,0 +1 @@
+0.8399999999999999
\ No newline at end of file
tests/go_testdata_golden_override/std.mantissa4.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.mantissa4.jsonnet.golden
@@ -0,0 +1 @@
+0.571493695641147
\ No newline at end of file
tests/go_testdata_golden_override/std.mantissa5.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.mantissa5.jsonnet.golden
@@ -0,0 +1 @@
+0.6562499999999998
\ No newline at end of file
tests/go_testdata_golden_override/std.mantissa6.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.mantissa6.jsonnet.golden
@@ -0,0 +1 @@
+0.6562499999999998
\ No newline at end of file
tests/go_testdata_golden_override/std.mantissa7.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.mantissa7.jsonnet.golden
@@ -0,0 +1 @@
+-0.6562500000000002
\ No newline at end of file
tests/go_testdata_golden_override/std.maxArrayOnEmpty.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.maxArrayOnEmpty.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: expected non-empty array
+ std.maxArrayOnEmpty.jsonnet:1:1-18: function <builtin_max_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.md5_6.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.md5_6.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected string, got number
+ argument <s> evaluation
+ std.md5_6.jsonnet:1:1-13: function <builtin_md5> call
\ No newline at end of file
tests/go_testdata_golden_override/std.minArrayOnEmpty.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.minArrayOnEmpty.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: expected non-empty array
+ std.minArrayOnEmpty.jsonnet:1:1-18: function <builtin_min_array> call
\ No newline at end of file
tests/go_testdata_golden_override/std.modulo2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.modulo2.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected number, got string
+ argument <x> evaluation
+ std.modulo2.jsonnet:1:1-23: function <builtin_modulo> call
\ No newline at end of file
tests/go_testdata_golden_override/std.modulo3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.modulo3.jsonnet.golden
@@ -0,0 +1,3 @@
+type error: expected number, got string
+ argument <x> evaluation
+ std.modulo3.jsonnet:1:1-23: function <builtin_modulo> call
\ No newline at end of file
tests/go_testdata_golden_override/std.primitiveEquals10.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.primitiveEquals10.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: x
+ std.primitiveEquals10.jsonnet:1:21-31: error statement
+ argument <x> evaluation
+ std.primitiveEquals10.jsonnet:1:1-36: function <builtin_primitive_equals> call
\ No newline at end of file
tests/go_testdata_golden_override/std.primitiveEquals13.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.primitiveEquals13.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: primitiveEquals operates on primitive types, got array
+ std.primitiveEquals13.jsonnet:1:1-29: function <builtin_primitive_equals> call
\ No newline at end of file
tests/go_testdata_golden_override/std.primitiveEquals6.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.primitiveEquals6.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: primitiveEquals operates on primitive types, got object
+ std.primitiveEquals6.jsonnet:1:1-29: function <builtin_primitive_equals> call
\ No newline at end of file
tests/go_testdata_golden_override/std.primitiveEquals7.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.primitiveEquals7.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: cannot test equality of functions
+ std.primitiveEquals7.jsonnet:1:1-51: function <builtin_primitive_equals> call
\ No newline at end of file
tests/go_testdata_golden_override/std.primitiveEquals9.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.primitiveEquals9.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: x
+ std.primitiveEquals9.jsonnet:1:25-35: error statement
+ argument <y> evaluation
+ std.primitiveEquals9.jsonnet:1:1-36: function <builtin_primitive_equals> call
\ No newline at end of file
tests/go_testdata_golden_override/std.sort3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.sort3.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: foo
+ std.sort3.jsonnet:1:16-28: error statement
+ std.sort3.jsonnet:1:1-30: function <builtin_sort> call
\ No newline at end of file
tests/go_testdata_golden_override/std.sort4.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.sort4.jsonnet.golden
@@ -0,0 +1,2 @@
+binary operation array < number is not implemented
+ std.sort4.jsonnet:1:1-30: function <builtin_sort> call
\ No newline at end of file
tests/go_testdata_golden_override/std.thisFile.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.thisFile.jsonnet.golden
@@ -0,0 +1 @@
+"std.thisFile.jsonnet"
\ No newline at end of file
tests/go_testdata_golden_override/std.thisFile2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.thisFile2.jsonnet.golden
@@ -0,0 +1 @@
+"std.thisFile.jsonnet"
\ No newline at end of file
tests/go_testdata_golden_override/std.toString5.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/std.toString5.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: x
+ std.toString5.jsonnet:1:14-24: error statement
+ argument <a> evaluation
+ std.toString5.jsonnet:1:1-25: function <builtin_to_string> call
\ No newline at end of file
tests/go_testdata_golden_override/stdlib_smoke_test.jsonnet.goldendiffbeforeafterboth1{2 "abs": 42,3 "acos": 1.0471975511965979,4 "asciiLower": "blah",5 "asciiUpper": "BLAH",6 "asin": 0.5235987755982989,7 "assertEqual": true,8 "atan": 1.373400766945016,9 "base64": [10 "YmxhaA==",11 "YmxhaA=="12 ],13 "base64Decode": "blah\n",14 "base64DecodeBytes": [15 98,16 108,17 97,18 104,19 1020 ],21 "ceil": 5,22 "char": "A",23 "codepoint": 65,24 "cos": 0.28366218546322625,25 "count": 1,26 "decodeUTF8": "AAA",27 "encodeUTF8": [28 98,29 108,30 97,31 10432 ],33 "endsWith": true,34 "escapeStringBash": "'test '\"'\"'test'\"'\"'test'",35 "escapeStringDollars": "test 'test'test",36 "escapeStringJson": "\"test 'test'test\"",37 "escapeStringPython": "\"test 'test'test\"",38 "exp": 148.4131591025766,39 "exponent": 3,40 "filter": [41 2,42 443 ],44 "filterMap": [45 4,46 847 ],48 "find": [49 2,50 451 ],52 "findSubstr": [53 0,54 555 ],56 "flatMap": [57 2,58 3,59 4,60 6,61 6,62 963 ],64 "flattenArrays": [65 1,66 2,67 3,68 4,69 5,70 [71 6,72 773 ]74 ],75 "floor": 5,76 "foldl": [77 0,78 1,79 2,80 381 ],82 "foldr": [83 1,84 2,85 3,86 487 ],88 "format": "test blah 42",89 "get": [90 17,91 42,92 18,93 4294 ],95 "isArray": true,96 "isBoolean": true,97 "isFunction": true,98 "isNumber": true,99 "isObject": true,100 "isString": true,101 "join": "a,b,c",102 "length": 0,103 "lines": "a\nb\nc\n",104 "log": 1.6094379124341003,105 "lstripChars": "bbbbcccc",106 "makeArray": [107 0,108 1,109 2,110 3,111 4112 ],113 "manifestIni": "a = 1\nb = 2\n[s1]\nx = 1\ny = 2\n",114 "manifestJsonEx": "{\n \"a\": {\n \"b\": \"c\"\n }\n}",115 "manifestJsonMinified": "{\"a\":{\"b\":\"c\"}}",116 "manifestPython": "{\"a\": {\"b\": \"c\"}}",117 "manifestPythonVars": "a = {\"b\": \"c\"}\n",118 "manifestTomlEx": "[a]\n b = \"c\"",119 "manifestXmlJsonml": "<blah a=\"42\"></blah>",120 "manifestYamlDoc": "\"a\":\n \"b\": \"c\"",121 "manifestYamlStream": "---\n42\n---\n\"a\":\n \"b\": \"c\"\n...\n",122 "mantissa": 0.6249999999999999,123 "map": [124 -1,125 -2,126 -3127 ],128 "mapWithIndex": [129 3,130 3,131 3132 ],133 "mapWithKey": {134 "a": 42135 },136 "max": 3,137 "md5": "1bc29b36f623ba82aaf6724fd3b16718",138 "member": true,139 "mergePatch": { },140 "min": 2,141 "objectFields": [ ],142 "objectFieldsAll": [ ],143 "objectHas": false,144 "objectHasAll": false,145 "objectKeysValues": [ ],146 "objectKeysValuesAll": [ ],147 "objectValues": [ ],148 "objectValuesAll": [ ],149 "parseHex": 3735928559,150 "parseInt": 42,151 "parseJson": {152 "a": "b"153 },154 "parseOctal": 83,155 "pow": 8,156 "prune": {157 "y": [158 "42"159 ]160 },161 "range": [162 1,163 2,164 3,165 4,166 5167 ],168 "repeat": "foofoofoo",169 "reverse": [170 "a",171 "b"172 ],173 "rstripChars": "aaabbbb",174 "set": [175 [176 1,177 2,178 3179 ],180 [181 3,182 2,183 1184 ]185 ],186 "setDiff": [187 [188 1,189 2190 ],191 [192 1,193 3194 ]195 ],196 "setInter": [197 [198 3199 ],200 [201 2202 ]203 ],204 "setMember": [205 false,206 true207 ],208 "setUnion": [209 [210 1,211 2,212 3,213 4,214 5215 ],216 [217 1,218 2,219 3,220 4,221 5222 ]223 ],224 "sign": 1,225 "sin": -0.9589242746631385,226 "slice": "o",227 "sort": [228 [229 1,230 2,231 3232 ],233 [234 3,235 2,236 1237 ]238 ],239 "split": [240 "a",241 "b",242 "c"243 ],244 "splitLimit": [245 "a",246 "b,c"247 ],248 "splitLimitR": [249 "a,b",250 "c"251 ],252 "sqrt": 2.23606797749979,253 "startsWith": true,254 "strReplace": "bba",255 "stringChars": [256 "b",257 "l",258 "a",259 "h"260 ],261 "stripChars": "bbbb",262 "substr": "s",263 "tan": -3.380515006246586,264 "thisFile": "stdlib_smoke_test.jsonnet",265 "toString": "42",266 "type": "object",267 "uniq": [268 [269 1,270 2,271 3272 ],273 [274 "a",275 "B",276 "a"277 ]278 ]279}tests/go_testdata_golden_override/strReplace3.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/strReplace3.jsonnet.golden
@@ -0,0 +1,2 @@
+runtime error: 'from' string must not be zero length
+ strReplace3.jsonnet:1:1-36: function <builtin_str_replace> call
\ No newline at end of file
tests/go_testdata_golden_override/string_divided_by_number.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/string_divided_by_number.jsonnet.golden
@@ -0,0 +1 @@
+binary operation string / number is not implemented
\ No newline at end of file
tests/go_testdata_golden_override/string_index_negative.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/string_index_negative.jsonnet.golden
@@ -0,0 +1 @@
+array out of bounds: -1 is not within [0,4)
\ No newline at end of file
tests/go_testdata_golden_override/string_index_out_of_bounds.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/string_index_out_of_bounds.jsonnet.golden
@@ -0,0 +1 @@
+string out of bounds: 4 is not within [0,4)
\ No newline at end of file
tests/go_testdata_golden_override/string_minus_number.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/string_minus_number.jsonnet.golden
@@ -0,0 +1 @@
+binary operation string - number is not implemented
\ No newline at end of file
tests/go_testdata_golden_override/string_plus_function.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/string_plus_function.jsonnet.golden
@@ -0,0 +1 @@
+runtime error: tried to manifest function
\ No newline at end of file
tests/go_testdata_golden_override/supersugar8.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/supersugar8.jsonnet.golden
@@ -0,0 +1,2 @@
+assert failed: null
+ supersugar8.jsonnet:1:10-17: assertion failure
\ No newline at end of file
tests/go_testdata_golden_override/syntax_error.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/syntax_error.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", "[", "{", <identifier>, <number>, <string>, <unary op>, ['"'], ['\''], got "EOF"
+ syntax_error.jsonnet:1:5
\ No newline at end of file
tests/go_testdata_golden_override/tailstrict2.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/tailstrict2.jsonnet.golden
@@ -0,0 +1,3 @@
+runtime error: xxx
+ tailstrict2.jsonnet:1:13-21: error statement
+ tailstrict2.jsonnet:2:14-19: function <e> call
\ No newline at end of file
tests/go_testdata_golden_override/too_many_arguments.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/too_many_arguments.jsonnet.golden
@@ -0,0 +1,3 @@
+too many args, function has 3
+Function has the following signature: (x, y, z)
+ too_many_arguments.jsonnet:1:1-36: function <anonymous> call
\ No newline at end of file
tests/go_testdata_golden_override/type_error.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/type_error.jsonnet.golden
@@ -0,0 +1,4 @@
+runtime error: xxx
+ type_error.jsonnet:1:10-22: error statement
+ argument <x> evaluation
+ type_error.jsonnet:1:1-23: function <builtin_type> call
\ No newline at end of file
tests/go_testdata_golden_override/unary_minus4.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/unary_minus4.jsonnet.golden
@@ -0,0 +1 @@
+operator - does not operate on type string
\ No newline at end of file
tests/go_testdata_golden_override/unary_object.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/unary_object.jsonnet.golden
@@ -0,0 +1 @@
+operator + does not operate on type object
\ No newline at end of file
tests/go_testdata_golden_override/unfinished_args.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/unfinished_args.jsonnet.golden
@@ -0,0 +1,2 @@
+syntax error: expected one of "(", ")", ".", "?", "[", "{", <binary op>, got "EOF"
+ unfinished_args.jsonnet:1:18
\ No newline at end of file
tests/go_testdata_golden_override/variable_not_visible.jsonnet.goldendiffbeforeafterboth--- /dev/null
+++ b/tests/go_testdata_golden_override/variable_not_visible.jsonnet.golden
@@ -0,0 +1,3 @@
+local is not defined: nested
+ variable_not_visible.jsonnet:1:44-51: local <nested> access
+ variable_not_visible.jsonnet:1:52-55: local <x2> access
\ No newline at end of file
tests/tests/cpp_test_suite.rsdiffbeforeafterboth--- a/tests/tests/cpp_test_suite.rs
+++ b/tests/tests/cpp_test_suite.rs
@@ -183,6 +183,15 @@
"number_leading_zero.jsonnet",
// Jrsonnet has this overload
"number_times_string.jsonnet",
+ // Jrsonnet has stricter implementations, this is a dumb thing that the filter value might not be
+ // evaluated anyway...
+ "std.filter7.jsonnet",
+ // Golang fails with max stack frames exceeded error
+ "std.makeArray_recursive_evalutation_order_matters.jsonnet",
+ // Jrsonnet has this overload
+ "string_times_number.jsonnet",
+ // Tailstrict semantics is partially unspecified
+ "tailstrict3.jsonnet",
];
#[test]
@@ -244,17 +253,21 @@
"expected error for golden {}:\n<got>\n{result}\n</got>\n<golden>\n{golden}\n</golden>",
entry.path().display()
),
- (Ok(result), Ok(golden)) => {
+ (Ok(result_v), Ok(golden)) => {
// Show diff relative to golden`.
- let diff = JsonDiff::diff_string(&golden, &result, false);
+ let diff = JsonDiff::diff_string(&golden, &result_v, false);
if let Some(diff) = diff {
- panic!(
- "Result \n{result:#}\n\
- and golden \n{golden:#}\n\
- did not match structurally:\n{diff:#}\n\
- for golden {}",
- entry.path().display()
- );
+ if env::var_os("UPDATE_GOLDEN").is_some() {
+ fs::write(golden_override, result)?;
+ } else {
+ panic!(
+ "Result \n{result_v:#}\n\
+ and golden \n{golden:#}\n\
+ did not match structurally:\n{diff:#}\n\
+ for golden {}",
+ entry.path().display()
+ );
+ }
}
}
(Err(_), Err(_)) => {