VirtualBox

source: vbox/trunk/src/libs/libxml2-2.12.6/testModule.c

Last change on this file was 104106, checked in by vboxsync, 8 weeks ago

libxml2-2.9.14: Applied and adjusted our libxml2 changes to 2.9.14. bugref:10640

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1/*
2 * testModule.c : a small tester program for xmlModule
3 *
4 * See Copyright for the status of this software.
5 *
6 * joelwreed@comcast.net
7 */
8
9#include <stdio.h>
10#include <libxml/xmlversion.h>
11
12#ifdef LIBXML_MODULES_ENABLED
13
14#include <limits.h>
15#include <string.h>
16#include <stdarg.h>
17
18#include <libxml/xmlmemory.h>
19#include <libxml/debugXML.h>
20#include <libxml/xmlmodule.h>
21
22#ifdef _WIN32
23#define MODULE_PATH "."
24#include <stdlib.h> /* for _MAX_PATH */
25#ifndef __MINGW32__
26#define PATH_MAX _MAX_PATH
27#endif
28#else
29#define MODULE_PATH ".libs"
30#endif
31
32/* Used for SCO Openserver*/
33#ifndef PATH_MAX
34#ifdef _POSIX_PATH_MAX
35#define PATH_MAX _POSIX_PATH_MAX
36#else
37#define PATH_MAX 4096
38#endif
39#endif
40
41typedef int (*hello_world_t)(void);
42
43int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
44 xmlChar filename[PATH_MAX];
45 xmlModulePtr module = NULL;
46 hello_world_t hello_world = NULL;
47
48 /* build the module filename, and confirm the module exists */
49 xmlStrPrintf(filename, sizeof(filename),
50 "%s/testdso%s",
51 (const xmlChar*)MODULE_PATH,
52 (const xmlChar*)LIBXML_MODULE_EXTENSION);
53
54 module = xmlModuleOpen((const char*)filename, 0);
55 if (module == NULL) {
56 fprintf(stderr, "Failed to open module\n");
57 return(1);
58 }
59
60 if (xmlModuleSymbol(module, "hello_world", (void **) &hello_world)) {
61 fprintf(stderr, "Failure to lookup\n");
62 return(1);
63 }
64 if (hello_world == NULL) {
65 fprintf(stderr, "Lookup returned NULL\n");
66 return(1);
67 }
68
69 (*hello_world)();
70
71 xmlModuleClose(module);
72
73 return(0);
74}
75
76#else
77int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
78 printf("%s : Module support not compiled in\n", argv[0]);
79 return(0);
80}
81#endif /* LIBXML_SCHEMAS_ENABLED */
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use