1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00

Mps lo pool coverage test: call mps_arena_formatted_objects_walk

and check we find the right number of test objects.  (integ from branch)

Copied from Perforce
 Change: 159443
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Richard Kistruck 2006-06-28 15:41:27 +01:00
commit bb67208a4c

View file

@ -22,6 +22,9 @@ static mps_addr_t isMoved(mps_addr_t object);
static void copy(mps_addr_t old, mps_addr_t new);
static void pad(mps_addr_t base, size_t size);
static void stepper(mps_addr_t addr, mps_fmt_t fmt, mps_pool_t pool,
void *p, size_t s);
static mps_fmt_A_s locv_fmt =
{
(mps_align_t)4,
@ -61,17 +64,26 @@ int main(void)
die(mps_reserve(&p, ap, (size_t)4), "mps_reserve 4");
*(mps_word_t *)p = 4;
cdie(mps_commit(ap, p, (size_t)4), "commit 4");
die(mps_reserve(&roots[1], ap, (size_t)8), "mps_reserve 8");
p = roots[1];
*(mps_word_t *)p = 8;
cdie(mps_commit(ap, p, (size_t)8), "commit 8");
die(mps_reserve(&p, ap, (size_t)4096), "mps_reserve 4096");
*(mps_word_t *)p = 4096;
cdie(mps_commit(ap, p, (size_t)4096), "commit 4096");
die(mps_reserve(&p, ap, (size_t)4), "mps_reserve last");
*(mps_word_t *)p = 4;
cdie(mps_commit(ap, p, (size_t)4), "commit last");
{
size_t count = 0;
mps_arena_formatted_objects_walk(arena, stepper, &count, 0);
cdie(count == 4, "walk 4 objects");
}
mps_ap_destroy(ap);
mps_pool_destroy(pool);
mps_fmt_destroy(format);
@ -135,6 +147,15 @@ static void pad(mps_addr_t base, size_t size)
cdie(0, "pad");
}
static void stepper(mps_addr_t addr, mps_fmt_t fmt, mps_pool_t pool,
void *p, size_t s)
{
size_t *pcount = p;
*pcount += 1;
return;
}
/* C. COPYRIGHT AND LICENSE
*