mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 11:50:51 -08:00
Make amcss test exercise the mps_message_type_gc code.
Copied from Perforce Change: 24148 ServerID: perforce.ravenbrook.com
This commit is contained in:
commit
f198709e44
1 changed files with 27 additions and 1 deletions
|
|
@ -42,6 +42,30 @@ static mps_addr_t exactRoots[exactRootsCOUNT];
|
|||
static mps_addr_t ambigRoots[ambigRootsCOUNT];
|
||||
|
||||
|
||||
static void enable(mps_arena_t arena)
|
||||
{
|
||||
mps_message_type_enable(arena, mps_message_type_gc());
|
||||
}
|
||||
|
||||
static void report(mps_arena_t arena)
|
||||
{
|
||||
mps_message_t message;
|
||||
|
||||
while (mps_message_get(&message, arena, mps_message_type_gc())) {
|
||||
size_t live, condemned, not_condemned;
|
||||
|
||||
live = mps_message_gc_live_size(arena, message);
|
||||
condemned = mps_message_gc_condemned_size(arena, message);
|
||||
not_condemned = mps_message_gc_not_condemned_size(arena, message);
|
||||
|
||||
mps_message_discard(arena, message);
|
||||
|
||||
printf("live %d\n", live);
|
||||
printf("condemned %d\n", condemned);
|
||||
printf("not_condemned %d\n", not_condemned);
|
||||
}
|
||||
}
|
||||
|
||||
static mps_addr_t make(void)
|
||||
{
|
||||
size_t length = rnd() % (2*avLEN);
|
||||
|
|
@ -132,6 +156,7 @@ static void *test(void *arg, size_t s)
|
|||
collections = c;
|
||||
printf("\nCollection %lu, %lu objects.\n",
|
||||
c, objs);
|
||||
report(arena);
|
||||
for(r = 0; r < exactRootsCOUNT; ++r)
|
||||
cdie(exactRoots[r] == objNULL || dylan_check(exactRoots[r]),
|
||||
"all roots check");
|
||||
|
|
@ -204,7 +229,6 @@ static void *test(void *arg, size_t s)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
mps_arena_t arena;
|
||||
|
|
@ -215,10 +239,12 @@ int main(int argc, char **argv)
|
|||
|
||||
die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE),
|
||||
"arena_create");
|
||||
enable(arena);
|
||||
die(mps_arena_commit_limit_set(arena, testArenaSIZE), "set limit");
|
||||
die(mps_thread_reg(&thread, arena), "thread_reg");
|
||||
mps_tramp(&r, test, arena, 0);
|
||||
mps_thread_dereg(thread);
|
||||
report(arena);
|
||||
mps_arena_destroy(arena);
|
||||
|
||||
fflush(stdout); /* synchronize */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue