Test PI in big-endian UTF-16

This commit is contained in:
Rhodri James 2017-06-19 15:23:45 +01:00 committed by Sebastian Pipping
parent 3c8d9300f6
commit 950382c0c1

View file

@ -5495,6 +5495,29 @@ START_TEST(test_utf16_pi)
}
END_TEST
START_TEST(test_utf16_be_pi)
{
const char text[] =
/* <?{KHO KHWAI}{CHO CHAN}?>
* where {KHO KHWAI} = U+0E04
* and {CHO CHAN} = U+0E08
*/
"\0<\0?\x0e\x04\x0e\x08\0?\0>"
/* <q/> */
"\0<\0q\0/\0>";
const XML_Char *expected = "\xe0\xb8\x84\xe0\xb8\x88: \n";
CharData storage;
CharData_Init(&storage);
XML_SetProcessingInstructionHandler(parser, accumulate_pi_characters);
XML_SetUserData(parser, &storage);
if (_XML_Parse_SINGLE_BYTES(parser, text, sizeof(text)-1,
XML_TRUE) == XML_STATUS_ERROR)
xml_failure(parser);
CharData_CheckXMLChars(&storage, expected);
}
END_TEST
/* Test that the unknown encoding handler with map entries that expect
* conversion but no conversion function is faulted
*/
@ -11866,6 +11889,7 @@ make_suite(void)
tcase_add_test(tc_basic, test_pi_xnl);
tcase_add_test(tc_basic, test_pi_xmm);
tcase_add_test(tc_basic, test_utf16_pi);
tcase_add_test(tc_basic, test_utf16_be_pi);
tcase_add_test(tc_basic, test_missing_encoding_conversion_fn);
tcase_add_test(tc_basic, test_failing_encoding_conversion_fn);
tcase_add_test(tc_basic, test_unknown_encoding_success);