]> granicus.if.org Git - libexpat/commitdiff
Test parsing a zero-length string
authorRhodri James <rhodri@kynesim.co.uk>
Tue, 7 Feb 2017 11:55:51 +0000 (11:55 +0000)
committerSebastian Pipping <sebastian@pipping.org>
Sun, 5 Mar 2017 21:33:53 +0000 (22:33 +0100)
expat/tests/runtests.c

index 10638d848706863f43cda3e0c54df6a0fe3e3e14..afbe42bb06a90b47d92e4801815602b43f3e171f 100644 (file)
@@ -1926,6 +1926,17 @@ START_TEST(test_ext_entity_ref_parameter)
 }
 END_TEST
 
+/* Test the parsing of an empty string */
+START_TEST(test_empty_parse)
+{
+    if (XML_Parse(parser, NULL, 0, XML_FALSE) == XML_STATUS_ERROR)
+        fail("Parsing empty string faulted");
+    if (XML_Parse(parser, NULL, 0, XML_TRUE) != XML_STATUS_ERROR)
+        fail("Parsing final empty string not faulted");
+    if (XML_GetErrorCode(parser) != XML_ERROR_NO_ELEMENTS)
+        fail("Parsing final empty string faulted for wrong reason");
+}
+END_TEST
 
 /*
  * Namespaces tests.
@@ -2931,6 +2942,7 @@ make_suite(void)
     tcase_add_test(tc_basic, test_explicit_encoding);
     tcase_add_test(tc_basic, test_user_parameters);
     tcase_add_test(tc_basic, test_ext_entity_ref_parameter);
+    tcase_add_test(tc_basic, test_empty_parse);
 
     suite_add_tcase(s, tc_namespace);
     tcase_add_checked_fixture(tc_namespace,