1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-08 04:58:40 +03:00

talloc/testsuite: test more talloc_pool related things

metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
This commit is contained in:
Stefan Metzmacher 2011-03-31 19:50:47 +02:00
parent 2146ffd764
commit f9fdef870e

View File

@ -1123,6 +1123,7 @@ static bool test_pool(void)
{
void *pool;
void *p1, *p2, *p3, *p4;
void *p2_2;
pool = talloc_pool(NULL, 1024);
@ -1131,6 +1132,60 @@ static bool test_pool(void)
p3 = talloc_size(p1, 50);
p4 = talloc_size(p3, 1000);
#if 1 /* this relies on ALWAYS_REALLOC == 0 in talloc.c */
p2_2 = talloc_realloc_size(pool, p2, 20+1);
torture_assert("pool realloc 20+1", p2_2 == p2, "failed: pointer changed");
p2_2 = talloc_realloc_size(pool, p2, 20-1);
torture_assert("pool realloc 20-1", p2_2 == p2, "failed: pointer changed");
p2_2 = talloc_realloc_size(pool, p2, 20-1);
torture_assert("pool realloc 20-1", p2_2 == p2, "failed: pointer changed");
talloc_free(p3);
/* this should reclaim the memory of p4 and p3 */
p2_2 = talloc_realloc_size(pool, p2, 400);
torture_assert("pool realloc 400", p2_2 == p2, "failed: pointer changed");
talloc_free(p1);
/* this should reclaim the memory of p1 */
p2_2 = talloc_realloc_size(pool, p2, 800);
torture_assert("pool realloc 800", p2_2 == p1, "failed: pointer not changed");
p2 = p2_2;
/* this should do a malloc */
p2_2 = talloc_realloc_size(pool, p2, 1800);
torture_assert("pool realloc 1800", p2_2 != p2, "failed: pointer not changed");
p2 = p2_2;
/* this should reclaim the memory from the pool */
p3 = talloc_size(pool, 80);
torture_assert("pool alloc 80", p3 == p1, "failed: pointer changed");
talloc_free(p2);
talloc_free(p3);
p1 = talloc_size(pool, 80);
p2 = talloc_size(pool, 20);
talloc_free(p1);
p2_2 = talloc_realloc_size(pool, p2, 20-1);
torture_assert("pool realloc 20-1", p2_2 == p2, "failed: pointer changed");
p2_2 = talloc_realloc_size(pool, p2, 20-1);
torture_assert("pool realloc 20-1", p2_2 == p2, "failed: pointer changed");
/* this should do a malloc */
p2_2 = talloc_realloc_size(pool, p2, 1800);
torture_assert("pool realloc 1800", p2_2 != p2, "failed: pointer not changed");
p2 = p2_2;
/* this should reclaim the memory from the pool */
p3 = talloc_size(pool, 800);
torture_assert("pool alloc 800", p3 == p1, "failed: pointer changed");
#endif /* this relies on ALWAYS_REALLOC == 0 in talloc.c */
talloc_free(pool);
return true;