diff options
Diffstat (limited to 'testsuites')
-rw-r--r-- | testsuites/ChangeLog | 5 | ||||
-rw-r--r-- | testsuites/support/include/test_support.h | 13 | ||||
-rw-r--r-- | testsuites/support/src/test_support.c | 19 |
3 files changed, 34 insertions, 3 deletions
diff --git a/testsuites/ChangeLog b/testsuites/ChangeLog index 4432d35920..7832dc8a97 100644 --- a/testsuites/ChangeLog +++ b/testsuites/ChangeLog @@ -1,3 +1,8 @@ +2010-07-14 Joel Sherrill <joel.sherrill@oarcorp.com> + + * support/include/test_support.h, support/src/test_support.c: Add + Allocate_majority_of_heap(). + 2010-06-25 Joel Sherrill <joel.sherrilL@OARcorp.com> * support/src/tmtests_support.c: Fix warning. 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. * @@ -26,6 +26,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 <fcntl.h> #include <tmacros.h> #include "test_support.h" +#include <rtems/libcsupport.h> 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 ); + +} |