malloc_test: new module for testing/debugging memory problems
authorAndrei Pelinescu-Onciul <andrei@iptel.org>
Thu, 11 Mar 2010 18:38:04 +0000 (19:38 +0100)
committerAndrei Pelinescu-Onciul <andrei@iptel.org>
Thu, 11 Mar 2010 20:16:12 +0000 (21:16 +0100)
commit0ff010fa5777a2c9c8ef477079323828e2362781
tree7abaab34130c3a27a4ea76fa35e5cb691ad1f5d2
parent1dd0a33bd1eab533d372f5faea0e38fb7a7a42b2
malloc_test: new module for testing/debugging memory problems

malloc_test is a new module for stressing the memory allocators
and easily simulating out-of-memory conditions or memory leaks.

Implemented RPCs:
mt.mem_alloc size - allocates size bytes
mt.mem_free [size]  - frees at least size bytes. If size is missing
  frees everything allocated by any malloc_test test function.
mt.mem_used  - amount of currently allocated mem. by malloc_test.
mt.mem_rnd_alloc min max total [unit] - allocates total
  <unit> bytes in chunks with the size randomly chosen between min
  and max.  <unit> is optional and can be one of b-bytes, k - kb,
  m - mb, g -gb.
mt.mem_test_start min max total min_int max_int total_time [unit]
  starts a malloc test that will take total_time to execute.
  Memory allocations will be performed at intervals randomly
  chosen between min_int and max_int (in ms). Each allocation will
  have a randomly chosen size between min and max <unit> bytes.
  After total <unit> bytes are allocated, everything is
  released/freed again and the allocations are restarted. The
  total_time is expressed in milliseconds.
  Several tests can be run in the same time.
mt.mem_test_stop id - stops the test identified by id.
mt.mem_test_destroy id - destroys the test identified by id
   (besides stopping it, it also frees all the data, including the
   statistics).
mt.mem_test_destroy_all - destroys all the running or stopped
   tests.
mt.mem_test_list [id] - Prints data about test id (running time,
  total allocations, errors a.s.o.). If id is missing, it will lists
  all the tests.

Script functions:
mt_mem_alloc(size) - equivalent to the mt.mem_alloc RPC.
mt_mem_free(size) - equivalent to the mt.mem_free RPC.
modules/malloc_test/Makefile [new file with mode: 0644]
modules/malloc_test/doc/Makefile [new file with mode: 0644]
modules/malloc_test/doc/functions.xml [new file with mode: 0644]
modules/malloc_test/doc/malloc_test.xml [new file with mode: 0644]
modules/malloc_test/doc/params.xml [new file with mode: 0644]
modules/malloc_test/malloc_test.c [new file with mode: 0644]