[patch 3/8] Remove some testing of an engine API that has been removed.

c.shoemaker at cox.net c.shoemaker at cox.net
Thu Mar 2 00:08:12 EST 2006


   Remove some testing of an engine API that has been removed.
   The engine used to have functions that made it possible to orphan a Split.
   As this is no longer possible, we can't test anymore.

   Incidental:
      Fix three or four small leaks in the test functions.
      Allow test-period to be randomized based on optional command-line arg.

---
 src/engine/test-core/test-engine-stuff.c |   18 ++++----
 src/engine/test/test-period.c            |   38 +++++++++++-------
 src/engine/test/test-split-vs-account.c  |   65 +++++++++----------------------
 3 files changed, 53 insertions(+), 68 deletions(-)

Index: trunk/src/engine/test-core/test-engine-stuff.c
===================================================================
--- trunk.orig/src/engine/test-core/test-engine-stuff.c
+++ trunk/src/engine/test-core/test-engine-stuff.c
@@ -930,9 +930,6 @@ add_random_splits(QofBook *book, Transac
     xaccTransBeginEdit(trn);
     s = get_random_split(book, acc, trn);
 
-    /* Occasionally leave a dangling split around */
-    if (do_bork()) xaccAccountRemoveSplit (s->acc, s);
-
     bcc = get_random_list_element (account_list);
     if ((bcc == acc) && (!do_bork()))
     { 
@@ -963,7 +960,6 @@ add_random_splits(QofBook *book, Transac
         xaccSplitSetAmount(s, gnc_numeric_neg(num));
     }
 
-    if (do_bork()) xaccAccountRemoveSplit (s->acc, s);
     xaccTransCommitEdit(trn);
 }
 
@@ -1278,6 +1274,7 @@ get_random_split(QofBook *book, Account 
     const gchar *str;
     gnc_commodity *com;
     int scu;
+    Timespec *ts;
 
     com = xaccTransGetCurrency (trn);
     scu = gnc_commodity_get_fraction(com);
@@ -1291,7 +1288,9 @@ get_random_split(QofBook *book, Account 
 
     xaccSplitSetReconcile(ret, possible_chars[get_random_int_in_range(0, 3)]);
 
-    xaccSplitSetDateReconciledTS(ret, get_random_timespec());
+    ts = get_random_timespec();
+    xaccSplitSetDateReconciledTS(ret, ts);
+    g_free(ts);
 
     /* Split must be in an account before we can set an amount */
     /* and in a transaction before it can be added to an account. */
@@ -1332,6 +1331,7 @@ void
 make_random_changes_to_split (Split *split)
 {
   Transaction *trans;
+  Timespec *ts;
 
   g_return_if_fail (split);
 
@@ -1344,7 +1344,9 @@ make_random_changes_to_split (Split *spl
 
   xaccSplitSetReconcile (split, possible_chars[get_random_int_in_range(0, 3)]);
 
-  xaccSplitSetDateReconciledTS (split, get_random_timespec());
+  ts = get_random_timespec();
+  xaccSplitSetDateReconciledTS (split, ts);
+  g_free(ts);
 
   xaccSplitSetSlots_nc (split, get_random_kvp_frame());
 
@@ -1401,7 +1403,7 @@ get_random_transaction_with_currency(Qof
     Transaction* trans;
     KvpFrame *f;
     gint num;
-    gchar *numstr;
+    gchar numstr[10];
 
     if (!account_list) 
     {
@@ -1424,7 +1426,7 @@ get_random_transaction_with_currency(Qof
                           get_random_commodity (book));
 
     num = get_random_int_in_range (1, max_trans_num);
-    numstr = g_strdup_printf("%d", num);
+    g_snprintf(numstr, 10, "%d", num);
     xaccTransSetNum(trans, numstr);
     set_tran_random_string_from_array(trans, xaccTransSetDescription,
                                       sane_descriptions);
Index: trunk/src/engine/test/test-period.c
===================================================================
--- trunk.orig/src/engine/test/test-period.c
+++ trunk/src/engine/test/test-period.c
@@ -37,10 +37,11 @@
 #include "test-engine-stuff.h"
 #include "Transaction.h"
 
+static int num_trans = 0;
 static void
 run_test (void)
 {
-  QofSession *sess;
+  QofSession *sess1, *sess2;
   QofBook *openbook, *closedbook;
   AccountGroup *grp;
   AccountList *acclist, *anode;
@@ -50,10 +51,10 @@ run_test (void)
   Transaction *tfirst, *tlast;
   Timespec tsfirst, tslast, tsmiddle;
   
-  sess = get_random_session ();
-  openbook = qof_session_get_book (sess);
-  sess = get_random_session ();
-  closedbook = qof_session_get_book(sess);
+  sess1 = get_random_session ();
+  openbook = qof_session_get_book (sess1);
+  sess2 = get_random_session ();
+  closedbook = qof_session_get_book(sess2);
   acc = NULL;
   equity = get_random_account(openbook);
   if (!openbook)
@@ -62,7 +63,7 @@ run_test (void)
     exit(get_rv());
   }
 
-  add_random_transactions_to_book (openbook, 120);
+  add_random_transactions_to_book (openbook, num_trans);
 
   grp = xaccGetAccountGroup (openbook);
 
@@ -118,7 +119,7 @@ run_test (void)
   tsmiddle = tsfirst;
   tsmiddle.tv_sec = (tsfirst.tv_sec + tslast.tv_sec)/2;
   gnc_set_logfile (stdout);
-  gnc_set_log_level_global (GNC_LOG_FATAL);
+  gnc_set_log_level_global (GNC_LOG_WARNING);
   closedbook = gnc_book_close_period (openbook, tsmiddle, 
                   equity, "this is opening balance dude");
 
@@ -134,11 +135,20 @@ run_test (void)
 int
 main (int argc, char **argv)
 {
-	qof_init();
-	if(cashobjects_register()) {
-		run_test ();
-		print_test_results();
-	}
-	qof_close();
-  return 0;
+    if (argc == 2)
+        num_trans = atoi(argv[1]);
+    else num_trans = 120;
+
+    qof_init();
+    gnc_log_default();
+    qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_WARNING);
+
+    g_log_set_always_fatal( G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING );
+    if(cashobjects_register()) {
+        srand(num_trans);
+        run_test ();
+        print_test_results();
+    }
+    qof_close();
+    return 0;
 }
Index: trunk/src/engine/test/test-split-vs-account.c
===================================================================
--- trunk.orig/src/engine/test/test-split-vs-account.c
+++ trunk/src/engine/test/test-split-vs-account.c
@@ -37,7 +37,7 @@ run_test (void)
 {
     Account *act1;
     Account *act2;
-    Split *spl;
+    //Split *spl;
     QofSession *session;
     QofBook *book;
 
@@ -45,57 +45,30 @@ run_test (void)
     book = qof_session_get_book (session);
 
     act1 = get_random_account(book);
-    if(!act1)
-    {
-        failure("act1 not created");
-        return;
-    }
-    success("act1 created");
+    do_test(act1 != NULL, "random account created");
+
     act2 = get_random_account(book);
-    if(!act2)
-    {
-        failure("act2 not created");
-        return;
-    }
-	success("act2 created");
-	/* if we use a trans here, the scrub routines
-	 will add a pointer to a newly created Orphan-...
-	account. */
+    do_test(act2 != NULL, "random account created");
+#if 0
     spl = get_random_split(book, act1, NULL);
-    if(!spl)
-    {
-        failure("spl not created");
-        return;
-    }
-	success("random split created");
-    if(act1 != xaccSplitGetAccount(spl))
-    {
-        failure("xaccAccountInsertSplit is broken");
-        return;
-    }
-	success("xaccAccountInsertSplit works");
-    /* this is weird -- we are testing an engine private function.
-     * is this really what is intended here ??? */
-    xaccAccountRemoveSplit (act1, spl);
+    do_test(spl != NULL, "random split created");
 
-    if(xaccSplitGetAccount(spl))
-    {
-        failure_args("xaccAccountRemoveSplit()", 
-		     __FILE__, __LINE__, "account not NULL");
-        return;
-    }
-	success("xaccSplitGetAccount works");
+    do_test(act1 == xaccSplitGetAccount(spl), "xaccAccountInsertSplit()");
+#endif
+    //FIXME
+    //xaccSplitSetAccount (spl, NULL);
+    //do_test(xaccSplitGetAccount(spl) == NULL, "xaccAccountRemoveSplit()");
 }
 
 int
 main (int argc, char **argv)
 {
-	qof_init();
-	if(cashobjects_register()) {
-  xaccLogDisable ();
-  run_test ();
-  print_test_results();
-	}
-	qof_close();
-  return 0;
+    qof_init();
+    if(cashobjects_register()) {
+        xaccLogDisable ();
+        run_test ();
+        print_test_results();
+    }
+    qof_close();
+    return 0;
 }

--


More information about the gnucash-devel mailing list