add incomplete_handler and tests
This commit is contained in:
parent
ca89432e7a
commit
2d7b690a91
4 changed files with 86 additions and 38 deletions
|
@ -49,18 +49,22 @@ parser(Handler, State, Config) ->
|
|||
|
||||
-ifndef(incomplete).
|
||||
-define(incomplete(State, Handler, Stack, Config),
|
||||
{incomplete, fun(end_stream) ->
|
||||
case State([end_json],
|
||||
Handler,
|
||||
Stack,
|
||||
Config) of
|
||||
{incomplete, _} -> ?error(State, [], Handler, Stack, Config)
|
||||
; Events -> Events
|
||||
case Config#config.incomplete_handler of
|
||||
false ->
|
||||
{incomplete, fun(end_stream) ->
|
||||
case State([end_json],
|
||||
Handler,
|
||||
Stack,
|
||||
Config) of
|
||||
{incomplete, _} -> ?error(State, [], Handler, Stack, Config)
|
||||
; Events -> Events
|
||||
end
|
||||
; (Tokens) ->
|
||||
State(Tokens, Handler, Stack, Config)
|
||||
end
|
||||
; (Tokens) ->
|
||||
State(Tokens, Handler, Stack, Config)
|
||||
end
|
||||
}
|
||||
};
|
||||
F -> F([], {parser, State, Handler, Stack}, Config)
|
||||
end
|
||||
).
|
||||
-endif.
|
||||
|
||||
|
@ -236,4 +240,13 @@ custom_error_handler_test_() ->
|
|||
].
|
||||
|
||||
|
||||
custom_incomplete_handler_test_() ->
|
||||
[
|
||||
{"custom incomplete handler", ?_assertError(
|
||||
badarg,
|
||||
parse([], [{incomplete_handler, fun(_, _, _) -> erlang:error(badarg) end}])
|
||||
)}
|
||||
].
|
||||
|
||||
|
||||
-endif.
|
Loading…
Add table
Add a link
Reference in a new issue