From be8bdff62b84dbb9e06c3491007038ecb74ec6c5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 14 Jul 2010 16:03:57 +0000 Subject: 2010-07-14 Joel Sherrill * support/include/test_support.h, support/src/test_support.c: Add Allocate_majority_of_heap(). --- testsuites/support/include/test_support.h | 13 +++++++++++-- testsuites/support/src/test_support.c | 19 ++++++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) (limited to 'testsuites/support') diff --git a/testsuites/support/include/test_support.h b/testsuites/support/include/test_support.h index cbb2c4de55..412226c9fe 100644 --- a/testsuites/support/include/test_support.h +++ b/testsuites/support/include/test_support.h @@ -1,5 +1,5 @@ /* - * COPYRIGHT (c) 1989-2009. + * COPYRIGHT (c) 1989-2010. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -17,7 +17,7 @@ extern "C" { #endif /* - * Allocate a number of small blocks from the heap + * Allocate a number of small blocks from the workspace * until the largest free block of memory available is * smaller than smallest. * @@ -25,6 +25,15 @@ extern "C" { */ void Allocate_majority_of_workspace( int smallest ); +/* + * Allocate a number of small blocks from the heap + * until the largest free block of memory available is + * smaller than smallest. + * + * NOTE: The memory CANNOT be freed. + */ +void Allocate_majority_of_heap( int smallest ); + /* * Return a pointer to the POSIX name that is slightly * beyond the legal limit. diff --git a/testsuites/support/src/test_support.c b/testsuites/support/src/test_support.c index e71700aec4..319be6f17b 100644 --- a/testsuites/support/src/test_support.c +++ b/testsuites/support/src/test_support.c @@ -1,5 +1,5 @@ /* - * COPYRIGHT (c) 1989-2009. + * COPYRIGHT (c) 1989-2010. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -12,6 +12,7 @@ #include #include #include "test_support.h" +#include static char Too_Long_Name[PATH_MAX + 2]; static char Longest_Name[PATH_MAX + 1]; @@ -58,3 +59,19 @@ void Allocate_majority_of_workspace( int smallest ) } while ( info.Free.largest >= smallest ); } + +void Allocate_majority_of_heap( int smallest ) +{ + size_t size; + void *temp; + + puts("Allocate_majority_of_heap: "); + size = malloc_free_space(); + do { + temp = malloc( size-16 ); + if (!temp) + perror("Unable to allocate from workspace"); + size = malloc_free_space(); + } while ( size >= smallest ); + +} -- cgit v1.2.3