}
END_TEST
+/* Test robustness of XML_SetEncoding() with a failing allocator */
+START_TEST(test_alloc_explicit_encoding)
+{
+ int i;
+
+ for (i = 0; i < 5; i++) {
+ allocation_count = i;
+ if (XML_SetEncoding(parser, "us-ascii") == XML_STATUS_OK)
+ break;
+ }
+ if (i == 0)
+ fail("Encoding set despite failing allocator");
+ else if (i == 5)
+ fail("Encoding not set at allocation count 5");
+}
+END_TEST
+
static Suite *
make_suite(void)
tcase_add_test(tc_alloc, test_alloc_external_entity);
tcase_add_test(tc_alloc, test_alloc_internal_entity);
tcase_add_test(tc_alloc, test_alloc_dtd_default_handling);
+ tcase_add_test(tc_alloc, test_alloc_explicit_encoding);
return s;
}