change all stray badjson to badarg
This commit is contained in:
parent
f0950dc4c9
commit
d081bd2539
8 changed files with 51 additions and 29 deletions
|
@ -1,3 +1,3 @@
|
||||||
{name, "bad_low_surrogate"}.
|
{name, "bad_low_surrogate"}.
|
||||||
{jsx, {error, badjson}}.
|
{jsx, {error, badarg}}.
|
||||||
{json, "bad_low_surrogate.json"}.
|
{json, "bad_low_surrogate.json"}.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{name, "bad naked number"}.
|
{name, "bad naked number"}.
|
||||||
{jsx, {error, badjson}}.
|
{jsx, {error, badarg}}.
|
||||||
{json, "bad_naked_number.json"}.
|
{json, "bad_naked_number.json"}.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{name, "unbalanced array"}.
|
{name, "unbalanced array"}.
|
||||||
{jsx, {error, badjson}}.
|
{jsx, {error, badarg}}.
|
||||||
{json, "unbalanced_array.json"}.
|
{json, "unbalanced_array.json"}.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{name, "unpaired_surrogate"}.
|
{name, "unpaired_surrogate"}.
|
||||||
{jsx, {error, badjson}}.
|
{jsx, {error, badarg}}.
|
||||||
{json, "unpaired_surrogate.json"}.
|
{json, "unpaired_surrogate.json"}.
|
||||||
|
|
|
@ -290,20 +290,20 @@ test_decode(JSON, Flags) ->
|
||||||
case (jsx_decoder:decoder(?MODULE, [], Flags))(JSON) of
|
case (jsx_decoder:decoder(?MODULE, [], Flags))(JSON) of
|
||||||
{incomplete, More} ->
|
{incomplete, More} ->
|
||||||
case More(<<" ">>) of
|
case More(<<" ">>) of
|
||||||
{incomplete, _} -> {error, badjson}
|
{incomplete, _} -> {error, badarg}
|
||||||
; Events -> Events
|
; Events -> Events
|
||||||
end
|
end
|
||||||
; Events -> Events
|
; Events -> Events
|
||||||
end
|
end
|
||||||
catch
|
catch
|
||||||
error:badarg -> {error, badjson}
|
error:badarg -> {error, badarg}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
incremental_decode(<<C:1/binary, Rest/binary>>, Flags) ->
|
incremental_decode(<<C:1/binary, Rest/binary>>, Flags) ->
|
||||||
P = jsx_decoder:decoder(?MODULE, [], Flags ++ [explicit_end]),
|
P = jsx_decoder:decoder(?MODULE, [], Flags ++ [explicit_end]),
|
||||||
try incremental_decode_loop(P(C), Rest)
|
try incremental_decode_loop(P(C), Rest)
|
||||||
catch error:badarg -> {error, badjson}
|
catch error:badarg -> {error, badarg}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
incremental_decode_loop({incomplete, More}, <<>>) ->
|
incremental_decode_loop({incomplete, More}, <<>>) ->
|
||||||
|
|
|
@ -1245,7 +1245,7 @@ decode(JSON, Opts) ->
|
||||||
try
|
try
|
||||||
(decoder(jsx, [], Opts))(JSON)
|
(decoder(jsx, [], Opts))(JSON)
|
||||||
catch
|
catch
|
||||||
error:badarg -> {error, badjson}
|
error:badarg -> {error, badarg}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1482,7 +1482,7 @@ escapes_test_() ->
|
||||||
|
|
||||||
noncharacters_test_() ->
|
noncharacters_test_() ->
|
||||||
[
|
[
|
||||||
{"noncharacters - badjson",
|
{"noncharacters - badarg",
|
||||||
?_assert(check_bad(noncharacters()))
|
?_assert(check_bad(noncharacters()))
|
||||||
},
|
},
|
||||||
{"noncharacters - replaced",
|
{"noncharacters - replaced",
|
||||||
|
@ -1493,7 +1493,7 @@ noncharacters_test_() ->
|
||||||
|
|
||||||
extended_noncharacters_test_() ->
|
extended_noncharacters_test_() ->
|
||||||
[
|
[
|
||||||
{"extended noncharacters - badjson",
|
{"extended noncharacters - badarg",
|
||||||
?_assert(check_bad(extended_noncharacters()))
|
?_assert(check_bad(extended_noncharacters()))
|
||||||
},
|
},
|
||||||
{"extended noncharacters - replaced",
|
{"extended noncharacters - replaced",
|
||||||
|
@ -1504,7 +1504,7 @@ extended_noncharacters_test_() ->
|
||||||
|
|
||||||
surrogates_test_() ->
|
surrogates_test_() ->
|
||||||
[
|
[
|
||||||
{"surrogates - badjson",
|
{"surrogates - badarg",
|
||||||
?_assert(check_bad(surrogates()))
|
?_assert(check_bad(surrogates()))
|
||||||
},
|
},
|
||||||
{"surrogates - replaced",
|
{"surrogates - replaced",
|
||||||
|
@ -1515,7 +1515,7 @@ surrogates_test_() ->
|
||||||
|
|
||||||
control_test_() ->
|
control_test_() ->
|
||||||
[
|
[
|
||||||
{"control characters - badjson",
|
{"control characters - badarg",
|
||||||
?_assert(check_bad(control_characters()))
|
?_assert(check_bad(control_characters()))
|
||||||
}
|
}
|
||||||
].
|
].
|
||||||
|
@ -1523,7 +1523,7 @@ control_test_() ->
|
||||||
|
|
||||||
reserved_test_() ->
|
reserved_test_() ->
|
||||||
[
|
[
|
||||||
{"reserved noncharacters - badjson",
|
{"reserved noncharacters - badarg",
|
||||||
?_assert(check_bad(reserved_space()))
|
?_assert(check_bad(reserved_space()))
|
||||||
},
|
},
|
||||||
{"reserved noncharacters - replaced",
|
{"reserved noncharacters - replaced",
|
||||||
|
@ -1553,7 +1553,7 @@ good_characters_test_() ->
|
||||||
|
|
||||||
|
|
||||||
check_bad(List) ->
|
check_bad(List) ->
|
||||||
[] == lists:dropwhile(fun({_, {error, badjson}}) -> true ; (_) -> false end,
|
[] == lists:dropwhile(fun({_, {error, badarg}}) -> true ; (_) -> false end,
|
||||||
check(List, [], [])
|
check(List, [], [])
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|
|
@ -495,7 +495,8 @@ maybe_replace(X, #opts{escaped_strings=true}) when X < 32 ->
|
||||||
lists:reverse(jsx_utils:json_escape_sequence(X));
|
lists:reverse(jsx_utils:json_escape_sequence(X));
|
||||||
maybe_replace(noncharacter, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
maybe_replace(noncharacter, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
||||||
maybe_replace(surrogate, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
maybe_replace(surrogate, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
||||||
maybe_replace(badutf, #opts{replaced_bad_utf8=true}) -> [16#fffd].
|
maybe_replace(badutf, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
||||||
|
maybe_replace(_, _) -> erlang:error(badarg).
|
||||||
|
|
||||||
|
|
||||||
-ifdef(TEST).
|
-ifdef(TEST).
|
||||||
|
@ -707,7 +708,7 @@ encode(Term) -> encode(Term, []).
|
||||||
|
|
||||||
encode(Term, Opts) ->
|
encode(Term, Opts) ->
|
||||||
try (encoder(jsx, [], Opts))(Term)
|
try (encoder(jsx, [], Opts))(Term)
|
||||||
catch _:_ -> {error, badjson}
|
catch _:_ -> {error, badarg}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
@ -903,7 +904,7 @@ escapes_test_() ->
|
||||||
|
|
||||||
surrogates_test_() ->
|
surrogates_test_() ->
|
||||||
[
|
[
|
||||||
{"surrogates - badjson",
|
{"surrogates - badarg",
|
||||||
?_assert(check_bad(surrogates()))
|
?_assert(check_bad(surrogates()))
|
||||||
},
|
},
|
||||||
{"surrogates - replaced",
|
{"surrogates - replaced",
|
||||||
|
@ -940,7 +941,7 @@ good_characters_test_() ->
|
||||||
|
|
||||||
reserved_test_() ->
|
reserved_test_() ->
|
||||||
[
|
[
|
||||||
{"reserved noncharacters - badjson",
|
{"reserved noncharacters - badarg",
|
||||||
?_assert(check_bad(reserved_space()))
|
?_assert(check_bad(reserved_space()))
|
||||||
},
|
},
|
||||||
{"reserved noncharacters - replaced",
|
{"reserved noncharacters - replaced",
|
||||||
|
@ -951,7 +952,7 @@ reserved_test_() ->
|
||||||
|
|
||||||
noncharacters_test_() ->
|
noncharacters_test_() ->
|
||||||
[
|
[
|
||||||
{"noncharacters - badjson",
|
{"noncharacters - badarg",
|
||||||
?_assert(check_bad(noncharacters()))
|
?_assert(check_bad(noncharacters()))
|
||||||
},
|
},
|
||||||
{"noncharacters - replaced",
|
{"noncharacters - replaced",
|
||||||
|
@ -962,7 +963,7 @@ noncharacters_test_() ->
|
||||||
|
|
||||||
extended_noncharacters_test_() ->
|
extended_noncharacters_test_() ->
|
||||||
[
|
[
|
||||||
{"extended noncharacters - badjson",
|
{"extended noncharacters - badarg",
|
||||||
?_assert(check_bad(extended_noncharacters()))
|
?_assert(check_bad(extended_noncharacters()))
|
||||||
},
|
},
|
||||||
{"extended noncharacters - replaced",
|
{"extended noncharacters - replaced",
|
||||||
|
@ -972,7 +973,7 @@ extended_noncharacters_test_() ->
|
||||||
|
|
||||||
|
|
||||||
check_bad(List) ->
|
check_bad(List) ->
|
||||||
[] == lists:dropwhile(fun({_, {error, badjson}}) -> true ; (_) -> false end,
|
[] == lists:dropwhile(fun({_, {error, badarg}}) -> true ; (_) -> false end,
|
||||||
check(List, [], [])
|
check(List, [], [])
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|
|
@ -549,7 +549,8 @@ maybe_replace(X, #opts{escaped_strings=true}) when X < 32 ->
|
||||||
lists:reverse(jsx_utils:json_escape_sequence(X));
|
lists:reverse(jsx_utils:json_escape_sequence(X));
|
||||||
maybe_replace(noncharacter, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
maybe_replace(noncharacter, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
||||||
maybe_replace(surrogate, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
maybe_replace(surrogate, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
||||||
maybe_replace(badutf, #opts{replaced_bad_utf8=true}) -> [16#fffd].
|
maybe_replace(badutf, #opts{replaced_bad_utf8=true}) -> [16#fffd];
|
||||||
|
maybe_replace(_, _) -> erlang:error(badarg).
|
||||||
|
|
||||||
|
|
||||||
-ifdef(TEST).
|
-ifdef(TEST).
|
||||||
|
@ -573,9 +574,9 @@ incomplete_test_() ->
|
||||||
|
|
||||||
encode(Term) -> encode(Term, []).
|
encode(Term) -> encode(Term, []).
|
||||||
|
|
||||||
encode(Term, Opts) ->
|
encode(Term, Opts) ->
|
||||||
try (parser(jsx, [], Opts))(Term)
|
try (parser(jsx, [], Opts))(Term)
|
||||||
catch _:_ -> {error, badjson}
|
catch error:badarg -> {error, badarg}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
@ -707,6 +708,26 @@ encode_test_() ->
|
||||||
)}
|
)}
|
||||||
].
|
].
|
||||||
|
|
||||||
|
encode_failures_test_() ->
|
||||||
|
[
|
||||||
|
{"unwrapped values", ?_assertEqual(
|
||||||
|
{error, badarg},
|
||||||
|
encode([{string, <<"a string\n">>}, {string, <<"a string\n">>}, end_json])
|
||||||
|
)},
|
||||||
|
{"unbalanced array", ?_assertEqual(
|
||||||
|
{error, badarg},
|
||||||
|
encode([start_array, end_array, end_array, end_json])
|
||||||
|
)},
|
||||||
|
{"premature finish", ?_assertEqual(
|
||||||
|
{error, badarg},
|
||||||
|
encode([start_object, {key, <<"key">>, start_array, end_json}])
|
||||||
|
)},
|
||||||
|
{"really premature finish", ?_assertEqual(
|
||||||
|
{error, badarg},
|
||||||
|
encode([end_json])
|
||||||
|
)}
|
||||||
|
].
|
||||||
|
|
||||||
|
|
||||||
xcode(Bin) -> xcode(Bin, #opts{}).
|
xcode(Bin) -> xcode(Bin, #opts{}).
|
||||||
|
|
||||||
|
@ -938,7 +959,7 @@ escapes_test_() ->
|
||||||
|
|
||||||
surrogates_test_() ->
|
surrogates_test_() ->
|
||||||
[
|
[
|
||||||
{"surrogates - badjson",
|
{"surrogates - badarg",
|
||||||
?_assert(check_bad(surrogates()))
|
?_assert(check_bad(surrogates()))
|
||||||
},
|
},
|
||||||
{"surrogates - replaced",
|
{"surrogates - replaced",
|
||||||
|
@ -975,7 +996,7 @@ good_characters_test_() ->
|
||||||
|
|
||||||
reserved_test_() ->
|
reserved_test_() ->
|
||||||
[
|
[
|
||||||
{"reserved noncharacters - badjson",
|
{"reserved noncharacters - badarg",
|
||||||
?_assert(check_bad(reserved_space()))
|
?_assert(check_bad(reserved_space()))
|
||||||
},
|
},
|
||||||
{"reserved noncharacters - replaced",
|
{"reserved noncharacters - replaced",
|
||||||
|
@ -986,7 +1007,7 @@ reserved_test_() ->
|
||||||
|
|
||||||
noncharacters_test_() ->
|
noncharacters_test_() ->
|
||||||
[
|
[
|
||||||
{"noncharacters - badjson",
|
{"noncharacters - badarg",
|
||||||
?_assert(check_bad(noncharacters()))
|
?_assert(check_bad(noncharacters()))
|
||||||
},
|
},
|
||||||
{"noncharacters - replaced",
|
{"noncharacters - replaced",
|
||||||
|
@ -997,7 +1018,7 @@ noncharacters_test_() ->
|
||||||
|
|
||||||
extended_noncharacters_test_() ->
|
extended_noncharacters_test_() ->
|
||||||
[
|
[
|
||||||
{"extended noncharacters - badjson",
|
{"extended noncharacters - badarg",
|
||||||
?_assert(check_bad(extended_noncharacters()))
|
?_assert(check_bad(extended_noncharacters()))
|
||||||
},
|
},
|
||||||
{"extended noncharacters - replaced",
|
{"extended noncharacters - replaced",
|
||||||
|
@ -1007,7 +1028,7 @@ extended_noncharacters_test_() ->
|
||||||
|
|
||||||
|
|
||||||
check_bad(List) ->
|
check_bad(List) ->
|
||||||
[] == lists:dropwhile(fun({_, {error, badjson}}) -> true ; (_) -> false end,
|
[] == lists:dropwhile(fun({_, {error, badarg}}) -> true ; (_) -> false end,
|
||||||
check(List, [], [])
|
check(List, [], [])
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue