zephyr/tests/lib/mem_alloc
Andrew Boie 4b4f773484 libc: set up memory partitions
* Newlib now defines a special z_newlib_partition containing
  all globals relevant to newlib. Most of these are in libc.a
  with a heap tracking variable in newlib's hooks.

* Both C libraries now expose a k_mem_partition containing the
  bounds of the malloc heap arena. Threads that want to use
  libc malloc() will need to add this to their memory domain.

* z_newlib_get_heap_bounds has been removed, in favor of the
  memory partition for the heap arena

* ztest now includes the C library partitions in its memory
  domain.

* The mem_alloc test now runs in user mode to prove that this
  all works for both C libraries.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-02-08 07:04:30 -05:00
..
src libc: set up memory partitions 2019-02-08 07:04:30 -05:00
CMakeLists.txt cmake: increase minimal required version to 3.13.1 2019-01-03 11:51:29 -05:00
prj_newlib.conf libc: set up memory partitions 2019-02-08 07:04:30 -05:00
prj.conf tests: lib: mem_alloc: Add tests to validate dynamic allocation 2018-08-09 09:41:00 -07:00
README.txt tests: lib: mem_alloc: Add tests to validate dynamic allocation 2018-08-09 09:41:00 -07:00
testcase.yaml libc: set up memory partitions 2019-02-08 07:04:30 -05:00

Title: Kernel Access to Dynamic Memory Allocation functions provided by
Standard Libraries

Description:

This test verifies kernel access to the dynamic memory allocation funtions
provided by standard C libraries supported in Zephyr:
NEWLIB and MINIMAL_LIB.
It is intended to catch issues in which a library is completely absent
or non-functional, and is NOT intended to be a comprehensive test suite
of all functionality provided by the libraries.

--------------------------------------------------------------------------------

Building and Running Project:

This project outputs to the console.  It can be built and executed
on QEMU as follows:

    make run

--------------------------------------------------------------------------------

Troubleshooting:

Problems caused by out-dated project information can be addressed by
issuing one of the following commands then rebuilding the project:

    make clean          # discard results of previous builds
                        # but keep existing configuration info
or
    make pristine       # discard results of previous builds
                        # and restore pre-defined configuration info

--------------------------------------------------------------------------------

Sample Output:

***** BOOTING ZEPHYR OS vxxxx - BUILD: xxxx *****
Running test suite test_c_lib_dynamic_memalloc
===================================================================
starting test - test_malloc
PASS - test_malloc
===================================================================
starting test - test_free
PASS - test_free
===================================================================
starting test - test_calloc
PASS - test_calloc
===================================================================
starting test - test_realloc
PASS - test_realloc
===================================================================
starting test - test_reallocarray
PASS - test_reallocarray
===================================================================
starting test - test_memalloc_all
PASS - test_memalloc_all
===================================================================
starting test - test_memalloc_max
PASS - test_memalloc_max
===================================================================
===================================================================
PROJECT EXECUTION SUCCESSFUL