]> granicus.if.org Git - libexpat/commitdiff
Test unannounced UTF-16, no BOM, leading space to hide '<'
authorRhodri James <rhodri@kynesim.co.uk>
Mon, 12 Jun 2017 17:24:39 +0000 (18:24 +0100)
committerSebastian Pipping <sebastian@pipping.org>
Sat, 22 Jul 2017 20:49:18 +0000 (22:49 +0200)
expat/tests/runtests.c

index 1262cd6b2a77dfebf19a22191044dd86ab7ef542..c32d5f7859714c3986efca77e951d6c45dd37e00 100644 (file)
@@ -490,6 +490,16 @@ START_TEST(test_bom_utf16_le)
 }
 END_TEST
 
+/* Parse whole buffer at once to exercise a different code path */
+START_TEST(test_nobom_utf16_le)
+{
+    char text[] = " \0<\0e\0/\0>\0";
+
+    if (XML_Parse(parser, text, sizeof(text)-1, XML_TRUE) == XML_STATUS_ERROR)
+        xml_failure(parser);
+}
+END_TEST
+
 static void XMLCALL
 accumulate_characters(void *userData, const XML_Char *s, int len)
 {
@@ -11045,6 +11055,7 @@ make_suite(void)
     tcase_add_test(tc_basic, test_bom_utf8);
     tcase_add_test(tc_basic, test_bom_utf16_be);
     tcase_add_test(tc_basic, test_bom_utf16_le);
+    tcase_add_test(tc_basic, test_nobom_utf16_le);
     tcase_add_test(tc_basic, test_illegal_utf8);
     tcase_add_test(tc_basic, test_utf8_auto_align);
     tcase_add_test(tc_basic, test_utf16);