summaryrefslogtreecommitdiff
path: root/tests/runtests.c
diff options
context:
space:
mode:
authorfdrake <fdrake>2002-07-22 17:15:48 +0000
committerfdrake <fdrake>2002-07-22 17:15:48 +0000
commit090f730c145f3f993653e692bb75768919e64eef (patch)
tree8bdcedc1a4047aafe52d97f457fc43e8cef1ae36 /tests/runtests.c
parentbef6bf0b952cc99820b34c7c6a34d9c93ecac829 (diff)
downloadlibexpat-090f730c145f3f993653e692bb75768919e64eef.tar.gz
Added regression test for SF bug #584832, adapted from contributed
test.
Diffstat (limited to 'tests/runtests.c')
-rw-r--r--tests/runtests.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/runtests.c b/tests/runtests.c
index 54ce61f..7c11f79 100644
--- a/tests/runtests.c
+++ b/tests/runtests.c
@@ -481,6 +481,35 @@ START_TEST(test_xmldecl_misplaced)
}
END_TEST
+/* Regression test for SF bug #584832. */
+static int
+UnknownEncodingHandler(void *data,const XML_Char *encoding,XML_Encoding *info)
+{
+ if (strcmp(encoding,"unsupported-encoding") == 0) {
+ int i;
+ for (i = 0; i < 256; ++i)
+ info->map[i] = i;
+ info->data=NULL;
+ info->convert=NULL;
+ info->release=NULL;
+ return 1;
+ }
+ return 0;
+}
+
+START_TEST(test_xmldecl_unknown_encoding_internal_entity)
+{
+ char *text =
+ "<?xml version='1.0' encoding='unsupported-encoding'?>\n"
+ "<!DOCTYPE test [<!ENTITY foo 'bar'>]>\n"
+ "<test a='&foo;'/>";
+
+ XML_SetUnknownEncodingHandler(parser, UnknownEncodingHandler, NULL);
+ if (!XML_Parse(parser, text, strlen(text), 1))
+ xml_failure(parser);
+}
+END_TEST
+
/*
* Namespaces tests.
@@ -674,6 +703,7 @@ make_basic_suite(void)
suite_add_tcase(s, tc_xmldecl);
tcase_add_checked_fixture(tc_xmldecl, basic_setup, basic_teardown);
tcase_add_test(tc_xmldecl, test_xmldecl_misplaced);
+ tcase_add_test(tc_xmldecl, test_xmldecl_unknown_encoding_internal_entity);
suite_add_tcase(s, tc_namespace);
tcase_add_checked_fixture(tc_namespace,