VirtualBox

source: vbox/trunk/src/libs/libxml2-2.6.31/testModule.c@ 39954

Last change on this file since 39954 was 39915, checked in by vboxsync, 13 years ago

libxml-2.6.31 unmodified

  • Property svn:eol-style set to native
File size: 1.6 KB
Line 
1/*
2 * testModule.c : a small tester program for xmlModule
3 *
4 * See Copyright for the status of this software.
5 *
6 * [email protected]
7 */
8
9#include "libxml.h"
10#ifdef LIBXML_MODULES_ENABLED
11#include <libxml/xmlversion.h>
12
13#include <limits.h>
14#include <stdio.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
32typedef int (*hello_world_t)(void);
33
34int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
35 xmlChar filename[PATH_MAX];
36 xmlModulePtr module = NULL;
37 hello_world_t hello_world = NULL;
38
39 /* build the module filename, and confirm the module exists */
40 xmlStrPrintf(filename, sizeof(filename),
41 (const xmlChar*) "%s/testdso%s",
42 (const xmlChar*)MODULE_PATH,
43 (const xmlChar*)LIBXML_MODULE_EXTENSION);
44
45 module = xmlModuleOpen((const char*)filename, 0);
46 if (module)
47 {
48 if (xmlModuleSymbol(module, "hello_world", (void **) &hello_world)) {
49 fprintf(stderr, "Failure to lookup\n");
50 return(1);
51 }
52 if (hello_world == NULL) {
53 fprintf(stderr, "Lookup returned NULL\n");
54 return(1);
55 }
56
57 (*hello_world)();
58
59 xmlModuleClose(module);
60 }
61
62 xmlMemoryDump();
63
64 return(0);
65}
66
67#else
68#include <stdio.h>
69int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
70 printf("%s : Module support not compiled in\n", argv[0]);
71 return(0);
72}
73#endif /* LIBXML_SCHEMAS_ENABLED */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette