summaryrefslogtreecommitdiff
path: root/plugins/MirOTR/ekhtml/testsuite/tester.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/MirOTR/ekhtml/testsuite/tester.c')
-rw-r--r--plugins/MirOTR/ekhtml/testsuite/tester.c158
1 files changed, 0 insertions, 158 deletions
diff --git a/plugins/MirOTR/ekhtml/testsuite/tester.c b/plugins/MirOTR/ekhtml/testsuite/tester.c
deleted file mode 100644
index 226cb21393..0000000000
--- a/plugins/MirOTR/ekhtml/testsuite/tester.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2002, Jon Travis
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#include "ekhtml.h"
-
-#define MAGIC_DOODIE 0xf9d33bc1
-
-typedef struct {
- unsigned int n_starttags;
- unsigned int n_endtags;
- unsigned int n_comments;
- unsigned int n_data;
- unsigned int magic_doodie;
- unsigned int only_parse;
-} tester_cbdata;
-
-static void handle_starttag_way(void *cbdata, ekhtml_string_t *tag,
- ekhtml_attr_t *attrs)
-{
- printf("GOT WAY START!\n");
-}
-
-static void handle_starttag(void *cbdata, ekhtml_string_t *tag,
- ekhtml_attr_t *attrs)
-{
- ekhtml_attr_t *attr;
- tester_cbdata *tdata = cbdata;
-
- assert(tdata->magic_doodie == MAGIC_DOODIE);
- tdata->n_starttags++;
- if(tdata->only_parse)
- return;
-
- printf("START: \"%.*s\"\n", tag->len, tag->str);
- for(attr=attrs; attr; attr=attr->next) {
- printf("ATTRIBUTE: \"%.*s\" = ", attr->name.len, attr->name.str);
- if (!attr->isBoolean)
- printf("\"%.*s\"\n", attr->val.len, attr->val.str);
- else
- printf("\"%.*s\"\n", attr->name.len, attr->name.str);
- }
-}
-
-static void handle_endtag(void *cbdata, ekhtml_string_t *str){
- tester_cbdata *tdata = cbdata;
-
- assert(tdata->magic_doodie == MAGIC_DOODIE);
- tdata->n_endtags++;
- if(tdata->only_parse)
- return;
-
- printf("END: \"%.*s\"\n", str->len, str->str);
-}
-
-static void handle_comment(void *cbdata, ekhtml_string_t *str){
- tester_cbdata *tdata = cbdata;
-
- assert(tdata->magic_doodie == MAGIC_DOODIE);
- tdata->n_comments++;
- if(tdata->only_parse)
- return;
-
- printf("COMMENT: \"%.*s\"\n", str->len, str->str);
-}
-
-static void handle_data(void *cbdata, ekhtml_string_t *str){
- tester_cbdata *tdata = cbdata;
-
- assert(tdata->magic_doodie == MAGIC_DOODIE);
- tdata->n_data++;
- if(tdata->only_parse)
- return;
-
- fwrite(str->str, str->len, 1, stdout);
-}
-
-int main(int argc, char *argv[]) {
- tester_cbdata cbdata;
- ekhtml_parser_t *ekparser;
- char *buf;
- size_t nbuf;
- int feedsize;
-
- if(argc < 2){
- fprintf(stderr, "Syntax: %s <feedsize> [1|0 (to print debug)]\n",
- argv[0]);
- return -1;
- }
-
- feedsize = atoi(argv[1]);
-
- ekparser = ekhtml_parser_new(NULL);
-
- cbdata.n_starttags = 0;
- cbdata.n_endtags = 0;
- cbdata.n_comments = 0;
- cbdata.n_data = 0;
- cbdata.magic_doodie = MAGIC_DOODIE;
- cbdata.only_parse = argc == 3;
-
- ekhtml_parser_datacb_set(ekparser, handle_data);
- ekhtml_parser_commentcb_set(ekparser, handle_comment);
- ekhtml_parser_startcb_add(ekparser, "WAY", handle_starttag_way);
- ekhtml_parser_startcb_add(ekparser, NULL, handle_starttag);
- ekhtml_parser_endcb_add(ekparser, NULL, handle_endtag);
- ekhtml_parser_cbdata_set(ekparser, &cbdata);
- buf = malloc(feedsize);
-
- while((nbuf = fread(buf, 1, feedsize, stdin))) {
- ekhtml_string_t str;
-
- str.str = buf;
- str.len = nbuf;
- ekhtml_parser_feed(ekparser, &str);
- ekhtml_parser_flush(ekparser, 0);
- }
- ekhtml_parser_flush(ekparser, 1);
- ekhtml_parser_destroy(ekparser);
- free(buf);
-
- if(argc == 3){
- fprintf(stderr,
- "# starttags: %u\n"
- "# endtags: %u\n"
- "# comments: %u\n"
- "# data: %u\n", cbdata.n_starttags,
- cbdata.n_endtags, cbdata.n_comments, cbdata.n_data);
- }
-
- return 0;
-}