Improve test coverage of XML_ResumeParser

This commit is contained in:
Rhodri James 2017-02-08 13:06:32 +00:00 committed by Sebastian Pipping
parent cf29d40fd3
commit 012de3c01b

View file

@ -1762,6 +1762,27 @@ START_TEST(test_resume_invalid_parse)
}
END_TEST
/* Test that re-suspended parses are correctly passed through */
START_TEST(test_resume_resuspended)
{
const char *text = "<doc>Hello<meep/>world</doc>";
resumable = XML_TRUE;
XML_SetCharacterDataHandler(parser,
clearing_aborting_character_handler);
if (XML_Parse(parser, text, strlen(text), XML_TRUE) == XML_STATUS_ERROR)
xml_failure(parser);
resumable = XML_TRUE;
XML_SetCharacterDataHandler(parser,
clearing_aborting_character_handler);
if (XML_ResumeParser(parser) != XML_STATUS_SUSPENDED)
fail("Resumption not suspended");
/* This one should succeed and finish up */
if (XML_ResumeParser(parser) != XML_STATUS_OK)
xml_failure(parser);
}
END_TEST
/* Test resetting a subordinate parser does exactly nothing */
static int XMLCALL
external_entity_resetter(XML_Parser parser,
@ -3252,6 +3273,7 @@ make_suite(void)
tcase_add_test(tc_basic, test_attributes);
tcase_add_test(tc_basic, test_reset_in_entity);
tcase_add_test(tc_basic, test_resume_invalid_parse);
tcase_add_test(tc_basic, test_resume_resuspended);
tcase_add_test(tc_basic, test_subordinate_reset);
tcase_add_test(tc_basic, test_subordinate_suspend);
tcase_add_test(tc_basic, test_explicit_encoding);