diff --git a/test/cases/array.json b/test/cases/array.json
index 836ecbe..ee1041c 100644
--- a/test/cases/array.json
+++ b/test/cases/array.json
@@ -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]]
diff --git a/test/jsx_test.erl b/test/jsx_test.erl
index d0cce15..f9d0856 100644
--- a/test/jsx_test.erl
+++ b/test/jsx_test.erl
@@ -26,22 +26,33 @@ 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, <>) ->
+incremental_decode(F, <>) ->
case F(<>) of
G when is_function(G) ->
decode(G, Rest)
; {Result, _} ->
Result
end.
+
+decode(F, JSON) ->
+ case F(JSON) of
+ G when is_function(G) ->
+ {Result, <<>>} = G(<<>>),
+ Result
+ ; {Result, _} ->
+ Result
+ end.
\ No newline at end of file