aboutsummaryrefslogtreecommitdiffstats
path: root/lib/xmerl/test
diff options
context:
space:
mode:
authorLars Thorsen <[email protected]>2011-08-10 10:22:44 +0200
committerLars Thorsen <[email protected]>2011-09-26 11:03:37 +0200
commit8cb06dd34e0febc6a147ca4a3d9775ad3baade83 (patch)
treeeab876b6e2b0b78e98df7217d15bcd2212d5fd4b /lib/xmerl/test
parentabc8c8c9c18eaaec117f737389ed190e206c67f1 (diff)
downloadotp-8cb06dd34e0febc6a147ca4a3d9775ad3baade83.tar.gz
otp-8cb06dd34e0febc6a147ca4a3d9775ad3baade83.tar.bz2
otp-8cb06dd34e0febc6a147ca4a3d9775ad3baade83.zip
[xmerl] Fix streaming bug in xmerl_scan (Thanks to Simon Cornish)
Diffstat (limited to 'lib/xmerl/test')
-rw-r--r--lib/xmerl/test/xmerl_SUITE.erl23
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