summaryrefslogtreecommitdiff
path: root/tests/runtests.c
diff options
context:
space:
mode:
authorfdrake <fdrake>2002-08-30 22:05:55 +0000
committerfdrake <fdrake>2002-08-30 22:05:55 +0000
commit9fba2016abbe64126c8e1052fd6817c4b0ac7e83 (patch)
treeb54965edbc0f8748a881865542b57a6b78c2141d /tests/runtests.c
parent22d2148e78c329d9a60c2e49bdfdf76a40a20b27 (diff)
downloadlibexpat-9fba2016abbe64126c8e1052fd6817c4b0ac7e83.tar.gz
New test: demonstrate segfault in epilogProcessor(). Karl has a fix
for this that he'll check in shortly.
Diffstat (limited to 'tests/runtests.c')
-rw-r--r--tests/runtests.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/runtests.c b/tests/runtests.c
index 12b6e45..fcb7e6a 100644
--- a/tests/runtests.c
+++ b/tests/runtests.c
@@ -266,6 +266,28 @@ START_TEST(test_utf16)
}
END_TEST
+START_TEST(test_utf16_le_epilog_newline)
+{
+ int first_chunk_bytes = 17;
+ char text[] =
+ "\xFF\xFE" /* BOM */
+ "<\000e\000/\000>\000" /* document element */
+ "\r\000\n\000\r\000\n\000"; /* epilog */
+
+ if (first_chunk_bytes >= sizeof(text) - 1)
+ fail("bad value of first_chunk_bytes");
+ if (XML_Parse(parser, text, first_chunk_bytes, 0) == XML_STATUS_ERROR)
+ xml_failure(parser);
+ else {
+ enum XML_Status rc;
+ rc = XML_Parse(parser, text + first_chunk_bytes,
+ sizeof(text) - first_chunk_bytes - 1, 1);
+ if (rc == XML_STATUS_ERROR)
+ xml_failure(parser);
+ }
+}
+END_TEST
+
/* Regression test for SF bug #481609. */
START_TEST(test_latin1_umlauts)
{
@@ -784,6 +806,7 @@ make_basic_suite(void)
tcase_add_test(tc_basic, test_bom_utf16_le);
tcase_add_test(tc_basic, test_illegal_utf8);
tcase_add_test(tc_basic, test_utf16);
+ tcase_add_test(tc_basic, test_utf16_le_epilog_newline);
tcase_add_test(tc_basic, test_latin1_umlauts);
/* Regression test for SF bug #491986. */
tcase_add_test(tc_basic, test_danish_latin1);