You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Justin Erenkrantz <je...@ebuilt.com> on 2001/12/14 21:49:13 UTC

[PATCH] Fix tests to not clear parent pool each time.

Sander,

Can you take a look at this?  cmpilato and I found that the tests
("make check") weren't working right with the new APR pool code - 
getting aborts when trying to get the error_pool and not finding it.

I think it could be related to the fact that we are resetting the 
root pool each time in svn_test_main.c - this invalidates the error
pool (which is created as a *child* of the root pool).  HOWEVER, 
cmpilato pointed out the code in svn_pool_clear that should get 
around this.  Perhaps it isn't working as we expected.

Gotta run.  This patch works for me, but may not ideal.  I'll
be in IRC later tonight.  -- justin

Index: subversion/tests/svn_tests_main.c
===================================================================
--- subversion/tests/.svn/text-base/svn_tests_main.c.svn-base	Mon Dec 10 01:50:38 2001
+++ subversion/tests/svn_tests_main.c	Fri Dec 14 13:36:47 2001
@@ -117,7 +117,7 @@
   int test_num;
   int i;
   int got_error = 0;
-  apr_pool_t *pool;
+  apr_pool_t *pool, *tpool;
   int ran_a_test = 0;
 
   /* How many tests are there? */
@@ -132,6 +132,7 @@
 
   /* set up the global pool */
   pool = svn_pool_create (NULL);
+  tpool = svn_pool_create(pool);
 
   /* Strip off any leading path components from the program name.  */
   prog_name = strrchr (argv[0], '/');
@@ -161,11 +162,11 @@
           /* run all tests with MSG_ONLY set to TRUE */
           for (i = 1; i <= array_size; i++)
             {
-              if (do_test_num (prog_name, i, TRUE, pool))
+              if (do_test_num (prog_name, i, TRUE, tpool))
                 got_error = 1;
               
               /* Clear the per-function pool */
-              svn_pool_clear (pool);
+              svn_pool_clear (tpool);
             }
         }
       else
@@ -176,11 +177,11 @@
                 {
                   ran_a_test = 1;
                   test_num = atoi (argv[i]);
-                  if (do_test_num (prog_name, test_num, FALSE, pool))
+                  if (do_test_num (prog_name, test_num, FALSE, tpool))
                     got_error = 1;
                   
                   /* Clear the per-function pool */
-                  svn_pool_clear (pool);
+                  svn_pool_clear (tpool);
                 }
               else if (argv[i][0] != '-')
                 {
@@ -196,11 +197,11 @@
       /* just run all tests */
       for (i = 1; i <= array_size; i++)
         {
-          if (do_test_num (prog_name, i, FALSE, pool))
+          if (do_test_num (prog_name, i, FALSE, tpool))
             got_error = 1;
 
           /* Clear the per-function pool */
-          svn_pool_clear (pool);
+          svn_pool_clear (tpool);
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org