Author: rhuijben
Date: Tue Nov 3 12:12:00 2015
New Revision: 1712270
URL: http://svn.apache.org/viewvc?rev=1712270&view=rev
Log:
Fix some testsuite issues when running the tests with APR pool debugging.
* buckets/allocator.c
(PRIVATE_ALLOCATOR_MAX_FREE): Define.
(serf_bucket_allocator_create): When creating an allocator, set maximum
amount of free memory to keep.
* test/test_util.c
(test_setup): Resolve segfault when running with pool debugging.
Modified:
serf/trunk/buckets/allocator.c
serf/trunk/buckets/buckets.c
serf/trunk/test/test_util.c
Modified: serf/trunk/buckets/allocator.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/allocator.c?rev=1712270&r1=1712269&r2=1712270&view=diff
==============================================================================
--- serf/trunk/buckets/allocator.c (original)
+++ serf/trunk/buckets/allocator.c Tue Nov 3 12:12:00 2015
@@ -27,6 +27,8 @@
#include "serf.h"
#include "serf_bucket_util.h"
+#include "serf_private.h"
+
typedef struct node_header_t {
apr_size_t size;
@@ -71,6 +73,9 @@ typedef struct node_header_t {
*/
#define DEBUG_DOUBLE_FREE
+/* If we have to create our own allocator, keep this amount of free ram
+ in the allocator before returning memory back to the OS */
+#define PRIVATE_ALLOCATOR_MAX_FREE (4 * 1024 * 1024)
typedef struct read_status_t {
const serf_bucket_t *bucket;
@@ -136,6 +141,8 @@ serf_bucket_alloc_t *serf_bucket_allocat
/* This most likely means pools are running in debug mode, create our
* own allocator to deal with memory ourselves */
apr_allocator_create(&allocator->allocator);
+ apr_allocator_max_free_set(allocator->allocator,
+ PRIVATE_ALLOCATOR_MAX_FREE);
allocator->own_allocator = 1;
}
allocator->unfreed = unfreed;
Modified: serf/trunk/buckets/buckets.c
URL:
http://svn.apache.org/viewvc/serf/trunk/buckets/buckets.c?rev=1712270&r1=1712269&r2=1712270&view=diff
==============================================================================
--- serf/trunk/buckets/buckets.c (original)
+++ serf/trunk/buckets/buckets.c Tue Nov 3 12:12:00 2015
@@ -182,7 +182,7 @@ apr_status_t serf_default_ignore_config(
{
return APR_SUCCESS;
}
-
+it
/* Fallback type definition to return for buckets that don't implement
a specific version of the bucket spec */
static const serf_bucket_type_t fallback_bucket_type =
Modified: serf/trunk/test/test_util.c
URL:
http://svn.apache.org/viewvc/serf/trunk/test/test_util.c?rev=1712270&r1=1712269&r2=1712270&view=diff
==============================================================================
--- serf/trunk/test/test_util.c (original)
+++ serf/trunk/test/test_util.c Tue Nov 3 12:12:00 2015
@@ -624,11 +624,16 @@ static int pool_abort_func(int retcode)
void *test_setup(void *dummy)
{
apr_pool_t *test_pool;
+ apr_allocator_t *allocator;
apr_pool_create(&test_pool, NULL);
apr_pool_abort_set(pool_abort_func, test_pool);
+
/* Keep a maximum of 16 MB unused memory inside APR. */
- apr_allocator_max_free_set(apr_pool_allocator_get(test_pool),
- 16384 * 1024);
+ allocator = apr_pool_allocator_get(test_pool);
+ if (allocator != NULL)
+ apr_allocator_max_free_set(allocator, 16384 * 1024);
+ /* else: APR pool debugging... leave this to apr */
+
return initTestCtx(test_pool);
}