summaryrefslogtreecommitdiff
path: root/perf/libxml2.c
diff options
context:
space:
mode:
Diffstat (limited to 'perf/libxml2.c')
-rw-r--r--perf/libxml2.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/perf/libxml2.c b/perf/libxml2.c
new file mode 100644
index 0000000..cd5ad45
--- /dev/null
+++ b/perf/libxml2.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <assert.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/fcntl.h>
+#include <sys/mman.h>
+
+#include <libxml/HTMLparser.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+int main(int argc, char **argv)
+{
+ htmlDocPtr doc;
+
+ struct stat info;
+ int fd;
+ char *file;
+
+ if (argc != 2) {
+ printf("Usage: %s <file>\n", argv[0]);
+ return 1;
+ }
+
+ /* libxml hack */
+ LIBXML_TEST_VERSION
+
+
+ stat(argv[1], &info);
+ fd = open(argv[1], 0);
+ file = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0);
+
+ doc = htmlReadMemory(file, info.st_size, NULL, NULL,
+ HTML_PARSE_RECOVER | HTML_PARSE_NOERROR |
+ HTML_PARSE_NOWARNING);
+#if 0
+ doc = htmlReadFile(argv[1], NULL, HTML_PARSE_RECOVER |
+ HTML_PARSE_NOERROR | HTML_PARSE_NOWARNING);
+#endif
+ if (!doc) {
+ printf("FAIL\n");
+ return 1;
+ }
+
+ xmlFreeDoc(doc);
+
+ xmlCleanupParser();
+
+ return 0;
+}
+