From 35a201cc8ef0c3f5b2df88d2e528aabee1048348 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 18:47:09 +0200 Subject: Initial/Final commit --- libxml2-2.9.10/testModule.c | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 libxml2-2.9.10/testModule.c (limited to 'libxml2-2.9.10/testModule.c') diff --git a/libxml2-2.9.10/testModule.c b/libxml2-2.9.10/testModule.c new file mode 100644 index 0000000..77b7ba1 --- /dev/null +++ b/libxml2-2.9.10/testModule.c @@ -0,0 +1,82 @@ +/* + * testModule.c : a small tester program for xmlModule + * + * See Copyright for the status of this software. + * + * joelwreed@comcast.net + */ + +#include "libxml.h" +#ifdef LIBXML_MODULES_ENABLED +#include + +#include +#include +#include +#include + +#include +#include +#include + +#ifdef _WIN32 +#define MODULE_PATH "." +#include /* for _MAX_PATH */ +#ifndef __MINGW32__ +#define PATH_MAX _MAX_PATH +#endif +#else +#define MODULE_PATH ".libs" +#endif + +/* Used for SCO Openserver*/ +#ifndef PATH_MAX +#ifdef _POSIX_PATH_MAX +#define PATH_MAX _POSIX_PATH_MAX +#else +#define PATH_MAX 4096 +#endif +#endif + +typedef int (*hello_world_t)(void); + +int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { + xmlChar filename[PATH_MAX]; + xmlModulePtr module = NULL; + hello_world_t hello_world = NULL; + + /* build the module filename, and confirm the module exists */ + xmlStrPrintf(filename, sizeof(filename), + "%s/testdso%s", + (const xmlChar*)MODULE_PATH, + (const xmlChar*)LIBXML_MODULE_EXTENSION); + + module = xmlModuleOpen((const char*)filename, 0); + if (module) + { + if (xmlModuleSymbol(module, "hello_world", (void **) &hello_world)) { + fprintf(stderr, "Failure to lookup\n"); + return(1); + } + if (hello_world == NULL) { + fprintf(stderr, "Lookup returned NULL\n"); + return(1); + } + + (*hello_world)(); + + xmlModuleClose(module); + } + + xmlMemoryDump(); + + return(0); +} + +#else +#include +int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { + printf("%s : Module support not compiled in\n", argv[0]); + return(0); +} +#endif /* LIBXML_SCHEMAS_ENABLED */ -- cgit v1.2.3