@@ -2174,22 +2174,10 @@ func TestJSONAndRegexMalformedInputs(t *testing.T) {
21742174 end
21752175 ` )
21762176
2177- _ , err := script .Call (context .Background (), "bad_json_trailing" , nil , CallOptions {})
2178- if err == nil || ! strings .Contains (err .Error (), "JSON.parse invalid JSON: trailing data" ) {
2179- t .Fatalf ("expected trailing JSON error, got %v" , err )
2180- }
2181- _ , err = script .Call (context .Background (), "bad_json_syntax" , nil , CallOptions {})
2182- if err == nil || ! strings .Contains (err .Error (), "JSON.parse invalid JSON" ) {
2183- t .Fatalf ("expected malformed JSON syntax error, got %v" , err )
2184- }
2185- _ , err = script .Call (context .Background (), "bad_regex_replace" , nil , CallOptions {})
2186- if err == nil || ! strings .Contains (err .Error (), "Regex.replace invalid regex" ) {
2187- t .Fatalf ("expected regex replace error, got %v" , err )
2188- }
2189- _ , err = script .Call (context .Background (), "bad_regex_replace_all" , nil , CallOptions {})
2190- if err == nil || ! strings .Contains (err .Error (), "Regex.replace_all invalid regex" ) {
2191- t .Fatalf ("expected regex replace_all error, got %v" , err )
2192- }
2177+ requireCallErrorContains (t , script , "bad_json_trailing" , nil , CallOptions {}, "JSON.parse invalid JSON: trailing data" )
2178+ requireCallErrorContains (t , script , "bad_json_syntax" , nil , CallOptions {}, "JSON.parse invalid JSON" )
2179+ requireCallErrorContains (t , script , "bad_regex_replace" , nil , CallOptions {}, "Regex.replace invalid regex" )
2180+ requireCallErrorContains (t , script , "bad_regex_replace_all" , nil , CallOptions {}, "Regex.replace_all invalid regex" )
21932181}
21942182
21952183func TestJSONAndRegexSizeGuards (t * testing.T ) {
@@ -2212,42 +2200,21 @@ func TestJSONAndRegexSizeGuards(t *testing.T) {
22122200 ` )
22132201
22142202 largeJSON := `{"data":"` + strings .Repeat ("x" , maxJSONPayloadBytes ) + `"}`
2215- var err error
2216- _ , err = script .Call (context .Background (), "parse_raw" , []Value {NewString (largeJSON )}, CallOptions {})
2217- if err == nil || ! strings .Contains (err .Error (), "JSON.parse input exceeds limit" ) {
2218- t .Fatalf ("expected JSON.parse size guard error, got %v" , err )
2219- }
2203+ requireCallErrorContains (t , script , "parse_raw" , []Value {NewString (largeJSON )}, CallOptions {}, "JSON.parse input exceeds limit" )
22202204
22212205 largeValue := NewHash (map [string ]Value {
22222206 "data" : NewString (strings .Repeat ("x" , maxJSONPayloadBytes )),
22232207 })
2224- _ , err = script .Call (context .Background (), "stringify_value" , []Value {largeValue }, CallOptions {})
2225- if err == nil || ! strings .Contains (err .Error (), "JSON.stringify output exceeds limit" ) {
2226- t .Fatalf ("expected JSON.stringify size guard error, got %v" , err )
2227- }
2208+ requireCallErrorContains (t , script , "stringify_value" , []Value {largeValue }, CallOptions {}, "JSON.stringify output exceeds limit" )
22282209
22292210 largePattern := strings .Repeat ("a" , maxRegexPatternSize + 1 )
2230- _ , err = script .Call (context .Background (), "regex_match_guard" , []Value {NewString (largePattern ), NewString ("aaa" )}, CallOptions {})
2231- if err == nil || ! strings .Contains (err .Error (), "Regex.match pattern exceeds limit" ) {
2232- t .Fatalf ("expected Regex.match pattern guard error, got %v" , err )
2233- }
2211+ requireCallErrorContains (t , script , "regex_match_guard" , []Value {NewString (largePattern ), NewString ("aaa" )}, CallOptions {}, "Regex.match pattern exceeds limit" )
22342212
22352213 largeText := strings .Repeat ("a" , maxRegexInputBytes + 1 )
2236- _ , err = script .Call (context .Background (), "regex_match_guard" , []Value {NewString ("a+" ), NewString (largeText )}, CallOptions {})
2237- if err == nil || ! strings .Contains (err .Error (), "Regex.match text exceeds limit" ) {
2238- t .Fatalf ("expected Regex.match text guard error, got %v" , err )
2239- }
2214+ requireCallErrorContains (t , script , "regex_match_guard" , []Value {NewString ("a+" ), NewString (largeText )}, CallOptions {}, "Regex.match text exceeds limit" )
22402215
22412216 hugeReplacement := strings .Repeat ("x" , maxRegexInputBytes / 2 )
2242- _ , err = script .Call (
2243- context .Background (),
2244- "regex_replace_all_guard" ,
2245- []Value {NewString ("abc" ), NewString ("" ), NewString (hugeReplacement )},
2246- CallOptions {},
2247- )
2248- if err == nil || ! strings .Contains (err .Error (), "Regex.replace_all output exceeds limit" ) {
2249- t .Fatalf ("expected Regex.replace_all output guard error, got %v" , err )
2250- }
2217+ requireCallErrorContains (t , script , "regex_replace_all_guard" , []Value {NewString ("abc" ), NewString ("" ), NewString (hugeReplacement )}, CallOptions {}, "Regex.replace_all output exceeds limit" )
22512218
22522219 largeRun := strings .Repeat ("a" , maxRegexInputBytes - 1024 )
22532220 replaced , err := script .Call (
0 commit comments