updated test suite to match new decoder
This commit is contained in:
parent
1e476f1797
commit
550f628564
2 changed files with 16 additions and 5 deletions
|
@ -1 +1 @@
|
|||
["foo","bar", "baz",[true],[false],[null],true, false, null, 0.7, {"key":"value"},[{}, null,null,null,[]],"\n\r\\", [-1]] g
|
||||
["foo","bar", "baz",[true],[false],[null],true, false, null, 0.7, {"key":"value"},[{}, null,null,null,[]],"\n\r\\", [-1]]
|
||||
|
|
|
@ -26,18 +26,20 @@ test_body(TestSpec, Dir) ->
|
|||
case file:consult(Dir ++ "/" ++ TestSpec) of
|
||||
{ok, [Events]} ->
|
||||
Decoder = jsx:decoder(),
|
||||
[{TestName, ?_assertEqual(incremental_decode(Decoder, JSON), Events)}] ++
|
||||
[{TestName, ?_assertEqual(decode(Decoder, JSON), Events)}]
|
||||
; {ok, [Events, Flags]} ->
|
||||
Decoder = jsx:decoder(none, Flags),
|
||||
Decoder = jsx:decoder({none, []}, Flags),
|
||||
[{TestName, ?_assertEqual(incremental_decode(Decoder, JSON), Events)}] ++
|
||||
[{TestName, ?_assertEqual(decode(Decoder, JSON), Events)}]
|
||||
end
|
||||
catch _:_ -> []
|
||||
end.
|
||||
|
||||
decode(F, <<>>) ->
|
||||
{Result, _} = F(<<16#FDEF/utf8>>),
|
||||
incremental_decode(F, <<>>) ->
|
||||
{Result, _} = F(<<>>),
|
||||
Result;
|
||||
decode(F, <<A/utf8, Rest/binary>>) ->
|
||||
incremental_decode(F, <<A/utf8, Rest/binary>>) ->
|
||||
case F(<<A/utf8>>) of
|
||||
G when is_function(G) ->
|
||||
decode(G, Rest)
|
||||
|
@ -45,3 +47,12 @@ decode(F, <<A/utf8, Rest/binary>>) ->
|
|||
Result
|
||||
end.
|
||||
|
||||
decode(F, JSON) ->
|
||||
case F(JSON) of
|
||||
G when is_function(G) ->
|
||||
{Result, <<>>} = G(<<>>),
|
||||
Result
|
||||
; {Result, _} ->
|
||||
Result
|
||||
end.
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue