From da89f13f23a8393cfa06ff0f57b9c588295e5295 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Mon, 25 Nov 2013 22:40:47 +0000 Subject: [PATCH] Fix sometime crash in test-xml-pricedb git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23439 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/backend/xml/test/test-xml-pricedb.c | 39 ++++++++++--------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/src/backend/xml/test/test-xml-pricedb.c b/src/backend/xml/test/test-xml-pricedb.c index d2f55be8bb..4bc97b1dbb 100644 --- a/src/backend/xml/test/test-xml-pricedb.c +++ b/src/backend/xml/test/test-xml-pricedb.c @@ -41,34 +41,31 @@ #include "test-stuff.h" #include "test-engine-stuff.h" #include "test-file-stuff.h" +#include "io-gncxml-v2.h" static QofSession *session; - -struct pricedb_data_struct -{ - GNCPriceDB *db; - int value; -}; -typedef struct pricedb_data_struct pricedb_data; +static int iter; static gboolean test_add_pricedb (const char *tag, gpointer globaldata, gpointer data) { - pricedb_data *gdata = globaldata; + sixtp_gdv2 *gdata = globaldata; + GNCPriceDB *db = gnc_pricedb_get_db (gdata->book); - do_test_args (gnc_pricedb_equal(data, gdata->db), + do_test_args (gnc_pricedb_equal(data, db), "gnc_pricedb_sixtp_parser_create", - __FILE__, __LINE__, "%d", gdata->value); + __FILE__, __LINE__, "%d", iter); return TRUE; } static void -test_db (int i, GNCPriceDB *db) +test_db (GNCPriceDB *db) { xmlNodePtr test_node; gchar *filename1; int fd; + QofBook *book = qof_instance_get_book (QOF_INSTANCE (db)); test_node = gnc_pricedb_dom_tree_create (db); @@ -92,10 +89,8 @@ test_db (int i, GNCPriceDB *db) { sixtp *parser; - pricedb_data data; - - data.db = db; - data.value = i; + load_counter lc; + sixtp_gdv2 data = {book, lc, NULL, NULL, FALSE}; parser = sixtp_new (); @@ -105,14 +100,14 @@ test_db (int i, GNCPriceDB *db) NULL, NULL)) { failure_args ("sixtp_add_some_sub_parsers failed", - __FILE__, __LINE__, "%d", i); + __FILE__, __LINE__, "%d", iter); } else if (!gnc_xml_parse_file (parser, filename1, test_add_pricedb, (gpointer)&data, qof_session_get_book (session))) { failure_args ("gnc_xml_parse_file returned FALSE", - __FILE__, __LINE__, "%d", i); + __FILE__, __LINE__, "%d", iter); } } @@ -124,22 +119,20 @@ test_db (int i, GNCPriceDB *db) static void test_generation (void) { - int i; - - for (i = 0; i < 20; i++) + for (iter = 0; iter < 20; iter++) { GNCPriceDB *db; - g_message("i=%d", i); + g_message("iter=%d", iter); session = qof_session_new(); db = get_random_pricedb (qof_session_get_book (session)); if (!db) { failure_args ("gnc_random_price_db returned NULL", - __FILE__, __LINE__, "%d", i); + __FILE__, __LINE__, "%d", iter); return; } if (gnc_pricedb_get_num_prices (db)) - test_db (i, db); + test_db (db); gnc_pricedb_destroy (db); qof_session_end(session);