2001-08-07 18:29:04 -05:00
|
|
|
#include "config.h"
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
#include "sixtp-dom-parsers.h"
|
|
|
|
#include "sixtp-dom-generators.h"
|
|
|
|
|
2005-11-01 21:32:36 -06:00
|
|
|
#include "gnc-engine.h"
|
2001-08-07 18:29:04 -05:00
|
|
|
|
2001-08-18 15:33:51 -05:00
|
|
|
#include "test-stuff.h"
|
|
|
|
#include "test-engine-stuff.h"
|
|
|
|
#include "test-file-stuff.h"
|
2001-08-07 18:29:04 -05:00
|
|
|
|
2012-01-28 19:12:30 -06:00
|
|
|
#define GNC_V2_STRING "gnc-v2"
|
|
|
|
const gchar *gnc_v2_xml_version_string = GNC_V2_STRING;
|
|
|
|
|
2001-08-07 18:29:04 -05:00
|
|
|
static void
|
|
|
|
test_binary()
|
|
|
|
{
|
|
|
|
int i;
|
2009-12-29 14:12:48 -06:00
|
|
|
for (i = 0; i < 20; i++)
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
|
|
|
bin_data *test_data1;
|
|
|
|
void *test_data2;
|
2004-12-31 12:38:03 -06:00
|
|
|
guint64 test_data2_len;
|
2001-08-07 18:29:04 -05:00
|
|
|
gchar *converted;
|
2009-12-29 14:12:48 -06:00
|
|
|
|
2001-08-07 18:29:04 -05:00
|
|
|
test_data1 = get_random_binary_data();
|
|
|
|
|
|
|
|
converted = binary_to_string(test_data1->data, test_data1->len);
|
|
|
|
|
2009-12-29 14:12:48 -06:00
|
|
|
if (!converted)
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
|
|
|
failure_args("binary_data", __FILE__, __LINE__, "binary_to_string returned NULL");
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
2009-12-29 14:12:48 -06:00
|
|
|
if (!string_to_binary(converted, &test_data2, &test_data2_len))
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
2009-12-29 14:12:48 -06:00
|
|
|
failure_args("binary_data", __FILE__, __LINE__,
|
2001-08-07 18:29:04 -05:00
|
|
|
"string_to_binary returned FALSE with data:\n%s\n",
|
|
|
|
converted);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
2009-12-29 14:12:48 -06:00
|
|
|
if (test_data2_len != test_data1->len)
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
2009-12-29 14:12:48 -06:00
|
|
|
failure_args("binary_data", __FILE__, __LINE__,
|
2005-11-01 21:32:36 -06:00
|
|
|
"lengths don't match: %" G_GINT64_FORMAT " vs %d",
|
|
|
|
test_data2_len, test_data1->len);
|
2001-08-07 18:29:04 -05:00
|
|
|
continue;
|
|
|
|
}
|
2009-12-29 14:12:48 -06:00
|
|
|
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
|
|
|
int j;
|
|
|
|
guchar *d1 = test_data1->data;
|
|
|
|
guchar *d2 = (guchar*)test_data2;
|
2009-12-29 14:12:48 -06:00
|
|
|
|
|
|
|
for (j = 0; j < test_data2_len; j++)
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
2009-12-29 14:12:48 -06:00
|
|
|
if (d1[j] != d2[j])
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
2009-12-29 14:12:48 -06:00
|
|
|
failure_args("binary_data", __FILE__, __LINE__,
|
2001-08-07 18:29:04 -05:00
|
|
|
"data doesn't match at point %d.\n%d vs %d",
|
|
|
|
i, d1[j], d2[j]);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
success("binary_data");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2009-12-29 14:12:48 -06:00
|
|
|
static char *test_strings[] =
|
|
|
|
{
|
2001-08-07 18:29:04 -05:00
|
|
|
"FooBar",
|
|
|
|
"<Ugly crap>",
|
|
|
|
"Something with a & in it",
|
|
|
|
"Ugly(*!&@#$NTHOEAUTF\"ntaheu09.h,. \n\t",
|
|
|
|
"\n\t\n\t",
|
|
|
|
NULL
|
|
|
|
};
|
|
|
|
|
|
|
|
static void
|
|
|
|
test_string_converters(void)
|
|
|
|
{
|
|
|
|
char *mark;
|
|
|
|
int i;
|
2009-12-29 14:12:48 -06:00
|
|
|
|
|
|
|
for (i = 0, mark = test_strings[i]; mark; i++, mark = test_strings[i])
|
2001-08-07 18:29:04 -05:00
|
|
|
{
|
|
|
|
xmlNodePtr test_node;
|
|
|
|
gchar *backout;
|
|
|
|
test_node = text_to_dom_tree("test-string", mark);
|
|
|
|
|
|
|
|
backout = dom_tree_to_text(test_node);
|
|
|
|
|
|
|
|
do_test_args(
|
2012-08-07 12:24:55 -05:00
|
|
|
g_strcmp0(backout, mark) == 0,
|
2001-08-07 18:29:04 -05:00
|
|
|
"string converting", __FILE__, __LINE__, "with string %s", mark);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int
|
|
|
|
main(int argc, char **argv)
|
|
|
|
{
|
2007-02-09 11:35:00 -06:00
|
|
|
qof_log_init();
|
2001-08-07 18:29:04 -05:00
|
|
|
test_binary();
|
|
|
|
fflush(stdout);
|
|
|
|
test_string_converters();
|
|
|
|
fflush(stdout);
|
|
|
|
print_test_results();
|
|
|
|
exit(get_rv());
|
|
|
|
}
|