forked from Imagelibrary/rtems
libtests/rbheap01: Add test cases
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
#include <rtems/rbheap.h>
|
#include <rtems/rbheap.h>
|
||||||
|
#include <rtems/malloc.h>
|
||||||
|
|
||||||
/* forward declarations to avoid warnings */
|
/* forward declarations to avoid warnings */
|
||||||
static rtems_task Init(rtems_task_argument argument);
|
static rtems_task Init(rtems_task_argument argument);
|
||||||
@@ -389,6 +390,45 @@ static void test_alloc_many_chunks(void)
|
|||||||
TEST_PAGE_TREE(&control, indices_1, frees_1);
|
TEST_PAGE_TREE(&control, indices_1, frees_1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_alloc_misaligned(void)
|
||||||
|
{
|
||||||
|
rtems_rbheap_control control;
|
||||||
|
void *p;
|
||||||
|
|
||||||
|
test_init_successful(&control);
|
||||||
|
|
||||||
|
p = rtems_rbheap_allocate(&control, PAGE_SIZE - 1);
|
||||||
|
rtems_test_assert(p != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_alloc_with_malloc_extend(void)
|
||||||
|
{
|
||||||
|
rtems_status_code sc;
|
||||||
|
rtems_rbheap_control control;
|
||||||
|
void *p;
|
||||||
|
void *opaque;
|
||||||
|
|
||||||
|
sc = rtems_rbheap_initialize(
|
||||||
|
&control,
|
||||||
|
area,
|
||||||
|
sizeof(area),
|
||||||
|
PAGE_SIZE,
|
||||||
|
rtems_rbheap_extend_descriptors_with_malloc,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
|
||||||
|
|
||||||
|
opaque = rtems_heap_greedy_allocate(NULL, 0);
|
||||||
|
|
||||||
|
p = rtems_rbheap_allocate(&control, PAGE_SIZE);
|
||||||
|
rtems_test_assert(p == NULL);
|
||||||
|
|
||||||
|
rtems_heap_greedy_free(opaque);
|
||||||
|
|
||||||
|
p = rtems_rbheap_allocate(&control, PAGE_SIZE);
|
||||||
|
rtems_test_assert(p != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_free_null(void)
|
static void test_free_null(void)
|
||||||
{
|
{
|
||||||
rtems_status_code sc = RTEMS_SUCCESSFUL;
|
rtems_status_code sc = RTEMS_SUCCESSFUL;
|
||||||
@@ -564,6 +604,8 @@ static void Init(rtems_task_argument arg)
|
|||||||
test_alloc_huge_chunk();
|
test_alloc_huge_chunk();
|
||||||
test_alloc_one_chunk();
|
test_alloc_one_chunk();
|
||||||
test_alloc_many_chunks();
|
test_alloc_many_chunks();
|
||||||
|
test_alloc_misaligned();
|
||||||
|
test_alloc_with_malloc_extend();
|
||||||
test_free_null();
|
test_free_null();
|
||||||
test_free_invalid();
|
test_free_invalid();
|
||||||
test_free_double();
|
test_free_double();
|
||||||
|
|||||||
Reference in New Issue
Block a user