r23439 - gnucash/trunk/src/backend/xml/test - Fix sometime crash in test-xml-pricedb

John Ralls jralls at code.gnucash.org
Mon Nov 25 17:40:48 EST 2013


Author: jralls
Date: 2013-11-25 17:40:47 -0500 (Mon, 25 Nov 2013)
New Revision: 23439
Trac: http://svn.gnucash.org/trac/changeset/23439

Modified:
   gnucash/trunk/src/backend/xml/test/test-xml-pricedb.c
Log:
Fix sometime crash in test-xml-pricedb

Modified: gnucash/trunk/src/backend/xml/test/test-xml-pricedb.c
===================================================================
--- gnucash/trunk/src/backend/xml/test/test-xml-pricedb.c	2013-11-25 21:11:08 UTC (rev 23438)
+++ gnucash/trunk/src/backend/xml/test/test-xml-pricedb.c	2013-11-25 22:40:47 UTC (rev 23439)
@@ -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;
+static int iter;
 
-struct pricedb_data_struct
-{
-    GNCPriceDB *db;
-    int value;
-};
-typedef struct pricedb_data_struct pricedb_data;
-
 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,11 +89,9 @@
 
     {
         sixtp *parser;
-        pricedb_data data;
+	load_counter lc;
+        sixtp_gdv2 data = {book, lc, NULL, NULL, FALSE};
 
-        data.db = db;
-        data.value = i;
-
         parser = sixtp_new ();
 
         if (!sixtp_add_some_sub_parsers
@@ -105,14 +100,14 @@
                  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 @@
 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);



More information about the gnucash-changes mailing list