/**
* This is a test for bxmlparser in $package$
*/
#include "si_test.h"
#include "bxmlparser.h"
int show_xml(Bxml * xml, int depth) {
int index;
for (index = 0; index < depth; index++) {
fprintf(stderr, " ");
}
if (xml->kind == BXML_TAG) {
fprintf(stderr, ">%s", xml->name);
} else if (xml->kind == BXML_TEXT) {
fprintf(stderr, ">#text: %s", xml->text);
} else {
fprintf(stderr, ">%s: %s", xml->name, xml->text);
}
if (xml->attributes) {
BxmlAttribute * nattr = xml->attributes;
fprintf(stderr, "(");
while (nattr) {
fprintf(stderr, " %s->%s", nattr->name, nattr->value);
nattr = nattr->next;
}
fprintf(stderr, " )");
}
fprintf(stderr, "\n");
if (xml->child) {
show_xml(xml->child, depth + 1);
}
if (xml->sibling) {
show_xml(xml->sibling, depth);
}
return depth;
}
/*
TEST_FUNC(bxmlparser_1) {
BxmlParser * parser = bxmlparser_new();
Bxml * result = bxmlparser_parse_str(parser, input1);
TEST_NOTNULL(result);
TEST_NULL(((void*)bxmlparser_get_error(parser)));
if (bxmlparser_get_error(parser)) {
fprintf(stderr, "%s : %d %d \n\n" , bxmlparser_get_error(parser),
bxmlparser_get_line(parser), bxmlparser_get_column(parser));
}
bxmlparser_free(parser);
if (result) {
show_xml(result, 0);
bxml_free(result);
}
TEST_DONE();
}
*/
#define TEST_XML(NAME, INPUT) \
TEST_FUNC(NAME) { \
BxmlParser * parser = bxmlparser_new(); \
Bxml * result = bxmlparser_parse_str(parser, INPUT); \
TEST_NOTNULL(result); \
TEST_NULL(((void*)bxmlparser_get_error(parser))); \
if (bxmlparser_get_error(parser)) { \
fprintf(stderr, "%s : %d %d \n\n" , bxmlparser_get_error(parser), \
bxmlparser_get_line(parser), bxmlparser_get_column(parser)); \
} \
bxmlparser_free(parser); \
if (result) { \
show_xml(result, 0); \
bxml_free(result); \
} \
TEST_DONE(); \
}
#define TEST_XML_FILENAME(NAME, FILENAME) \
TEST_FUNC(NAME) { \
BxmlParser * parser = bxmlparser_new(); \
Bxml * result = bxmlparser_parse_filename(parser, FILENAME); \
TEST_NOTNULL(result); \
TEST_NULL(((void*)bxmlparser_get_error(parser))); \
if (bxmlparser_get_error(parser)) { \
fprintf(stderr, "%s : %d %d \n\n" , bxmlparser_get_error(parser), \
bxmlparser_get_line(parser), bxmlparser_get_column(parser)); \
} \
bxmlparser_free(parser); \
if (result) { \
show_xml(result, 0); \
bxml_free(result); \
} \
TEST_DONE(); \
}
char * input_1 = "";
TEST_XML(bxmlparser_1, input_1)
char * input_2 = "";
TEST_XML(bxmlparser_2, input_2)
char * input_3 = "hello";
TEST_XML(bxmlparser_3, input_3)
char * input_4 = "hello & world";
TEST_XML(bxmlparser_4, input_4)
char * input_5 = "hello world";
TEST_XML(bxmlparser_5, input_5)
char * input_6 = "";
TEST_XML(bxmlparser_6, input_6)
char * input_7 = "okok2";
TEST_XML(bxmlparser_7, input_7)
TEST_XML_FILENAME(bxmlparser_fn_1, "data/map/map_0001.tmx");
int main(void) {
TEST_INIT();
TEST_RUN(bxmlparser_1);
TEST_RUN(bxmlparser_2);
TEST_RUN(bxmlparser_3);
TEST_RUN(bxmlparser_4);
TEST_RUN(bxmlparser_5);
TEST_RUN(bxmlparser_6);
TEST_RUN(bxmlparser_7);
TEST_RUN(bxmlparser_fn_1);
TEST_REPORT();
}