From 950382c0c101404884832b8eb16f3ec9f43ccc02 Mon Sep 17 00:00:00 2001 From: Rhodri James Date: Mon, 19 Jun 2017 15:23:45 +0100 Subject: [PATCH] Test PI in big-endian UTF-16 --- expat/tests/runtests.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/expat/tests/runtests.c b/expat/tests/runtests.c index d6040a98..3c294ff7 100644 --- a/expat/tests/runtests.c +++ b/expat/tests/runtests.c @@ -5495,6 +5495,29 @@ START_TEST(test_utf16_pi) } END_TEST +START_TEST(test_utf16_be_pi) +{ + const char text[] = + /* + * where {KHO KHWAI} = U+0E04 + * and {CHO CHAN} = U+0E08 + */ + "\0<\0?\x0e\x04\x0e\x08\0?\0>" + /* */ + "\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);