/* TEST_HEADER id = $HopeName: MMQA_test_function!121.c(trunk.2) $ summary = very small arenas language = c link = testlib.o OUTPUT_SPEC result = pass END_HEADER */ #include "testlib.h" #include "mpsavm.h" #include "mpscmv.h" void *stackpointer; mps_arena_t arena; mps_thr_t thread; mps_pool_t pool; mps_pool_t pools[100]; static void test(void) { int i; for (i = 64; i >= 0; i--) { mps_res_t res; comment("Trying arena of %d kB.", i); res = mps_arena_create(&arena, mps_arena_class_vm(), (size_t)(1024*i)); if (res == MPS_RES_OK) { res = mps_thread_reg(&thread, arena); if (res == MPS_RES_OK) { mps_thread_dereg(thread); } else { if (res != MPS_RES_MEMORY) { error("Wrong error code, %d, for mps_thread_reg.", res); } } mps_arena_destroy(arena); } else { report_res("arena_create", res); if (res != MPS_RES_MEMORY) { error("Wrong error code."); } } } } int main(void) { void *m; stackpointer=&m; /* hack to get stack pointer */ easy_tramp(test); pass(); return 0; }