Skip to content

Commit

Permalink
lib: mempool-alloconly unit test improvement: verify that data stack …
Browse files Browse the repository at this point in the history
…isn't used by p_malloc()
  • Loading branch information
sirainen committed Feb 21, 2016
1 parent 010341a commit 5dd21e1
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/lib/test-mempool-alloconly.c
Expand Up @@ -16,22 +16,33 @@ static bool mem_has_bytes(const void *mem, size_t size, uint8_t b)

void test_mempool_alloconly(void)
{
#define SENTRY_SIZE 32
#define SENTRY_CHAR '\xDE'
#define PMALLOC_MAX_COUNT 128
pool_t pool;
unsigned int i, j, k;
void *mem[PMALLOC_MAX_COUNT + 1];
char *sentry;

test_begin("mempool_alloconly");
for (i = 0; i < 64; i++) {
for (j = 1; j <= 128; j++) {
pool = pool_alloconly_create(MEMPOOL_GROWING"test", i);
/* make sure p_malloc() doesn't overwrite unallocated
data in data stack. parts of the code relies on
this. */
sentry = t_buffer_get(SENTRY_SIZE);
memset(sentry, SENTRY_CHAR, SENTRY_SIZE);

mem[0] = p_malloc(pool, j);
memset(mem[0], j, j);

for (k = 1; k <= PMALLOC_MAX_COUNT; k++) {
mem[k] = p_malloc(pool, k);
memset(mem[k], k, k);
}
test_assert(mem_has_bytes(sentry, SENTRY_SIZE, SENTRY_CHAR));
test_assert(t_buffer_get(SENTRY_SIZE) == sentry);

test_assert(mem_has_bytes(mem[0], j, j));
for (k = 1; k <= PMALLOC_MAX_COUNT; k++)
Expand Down

0 comments on commit 5dd21e1

Please sign in to comment.