diff options
author | Lars Thorsen <[email protected]> | 2011-09-26 11:09:37 +0200 |
---|---|---|
committer | Lars Thorsen <[email protected]> | 2011-09-26 11:09:37 +0200 |
commit | 97f3a064f27843a9f825210c1c7a27075b7b3ad7 (patch) | |
tree | eab876b6e2b0b78e98df7217d15bcd2212d5fd4b /lib/xmerl/test/xmerl_SUITE.erl | |
parent | abc8c8c9c18eaaec117f737389ed190e206c67f1 (diff) | |
parent | 8cb06dd34e0febc6a147ca4a3d9775ad3baade83 (diff) | |
download | otp-97f3a064f27843a9f825210c1c7a27075b7b3ad7.tar.gz otp-97f3a064f27843a9f825210c1c7a27075b7b3ad7.tar.bz2 otp-97f3a064f27843a9f825210c1c7a27075b7b3ad7.zip |
Merge branch 'lars/xmerl/continuation-error/OTP-9457' into dev
* lars/xmerl/continuation-error/OTP-9457:
[xmerl] Fix streaming bug in xmerl_scan (Thanks to Simon Cornish)
Diffstat (limited to 'lib/xmerl/test/xmerl_SUITE.erl')
-rw-r--r-- | lib/xmerl/test/xmerl_SUITE.erl | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/xmerl/test/xmerl_SUITE.erl b/lib/xmerl/test/xmerl_SUITE.erl index 0c809dbcb6..94c38d4d48 100644 --- a/lib/xmerl/test/xmerl_SUITE.erl +++ b/lib/xmerl/test/xmerl_SUITE.erl @@ -58,7 +58,7 @@ groups() -> {ticket_tests, [], [ticket_5998, ticket_7211, ticket_7214, ticket_7430, ticket_6873, ticket_7496, ticket_8156, ticket_8697, - ticket_9411]}, + ticket_9411, ticket_9457]}, {app_test, [], [{xmerl_app_test, all}]}, {appup_test, [], [{xmerl_appup_test, all}]}]. @@ -588,7 +588,26 @@ ticket_9411(Config) -> ?line {E, _} = xmerl_scan:string(Xml), ?line {E, _} = xmerl_xsd:validate(E, Schema). - +ticket_9457(suite) -> []; +ticket_9457(doc) -> + ["Test that xmerl_scan handles continuation correct when current input runs out at the end of an attribute value"]; +ticket_9457(Config) -> + Opts = [{continuation_fun, fun ticket_9457_cont/3, start}, {space, normalize}], + ?line {E, _} = xmerl_scan:string([], Opts). + +ticket_9457_cont(Continue, Exception, GlobalState) -> + case xmerl_scan:cont_state(GlobalState) of + start -> + G1 = xmerl_scan:cont_state(next, GlobalState), + Bytes = "<?xml version=\"1.0\" ?>\r\n<item a=\"b\"", + Continue(Bytes, G1); + next -> + G1 = xmerl_scan:cont_state(last, GlobalState), + Bytes = ">blah</item>\r\n", + Continue(Bytes, G1); + _ -> + Exception(GlobalState) + end. %%====================================================================== %% Support Functions |