From 7bdb5f5ad6e28e7530682ce9346cf2e92c8fc0b4 Mon Sep 17 00:00:00 2001 From: Richard Tucker Date: Fri, 25 Jul 1997 16:34:25 +0100 Subject: [PATCH] New unit new Copied from Perforce Change: 18505 ServerID: perforce.ravenbrook.com --- mps/qa/function/30.c | 118 +++++++++++++++++++++++++++++++++++++++++++ mps/qa/function/31.c | 106 ++++++++++++++++++++++++++++++++++++++ mps/qa/function/32.c | 106 ++++++++++++++++++++++++++++++++++++++ mps/qa/function/33.c | 106 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 436 insertions(+) create mode 100644 mps/qa/function/30.c create mode 100644 mps/qa/function/31.c create mode 100644 mps/qa/function/32.c create mode 100644 mps/qa/function/33.c diff --git a/mps/qa/function/30.c b/mps/qa/function/30.c new file mode 100644 index 00000000000..4aa3f3da48c --- /dev/null +++ b/mps/qa/function/30.c @@ -0,0 +1,118 @@ +/* TEST_HEADER + summary = test my format for checking the graph + language = c + link = testlib.o awlfmt.o +END_HEADER +*/ + +#include "testlib.h" +#include "mpscawl.h" +#include "awlfmt.h" + +void *stackpointer; + +static void test(void) +{ + mps_space_t space; + mps_pool_t pool; + mps_thr_t thread; + mps_root_t root; + + mps_fmt_t format; + mps_ap_t ap; + + mycell *a, *b, *c, *d, *e, *f, *g; + + int i; + int j; + + RC; + + cdie(mps_space_create(&space), "create space"); + + cdie(mps_thread_reg(&thread, space), "register thread"); + + cdie( + mps_root_create_reg(&root, space, MPS_RANK_AMBIG, 0, thread, + mps_stack_scan_ambig, stackpointer, 0), + "create root"); + + cdie( + mps_fmt_create_A(&format, space, &fmtA), + "create format"); + + cdie( + mps_pool_create(&pool, space, mps_class_awl(), format), + "create pool"); + + cdie( + mps_ap_create(&ap, pool, MPS_RANK_EXACT), + "create ap"); + + for (j=1; j<100; j++) + { + comment("%i of 100.", j); + UC; + a = allocone(ap, 5, 1); + b = a; + c = a; + d = a; + e = a; + f = a; + g = a; + + for (i=1; i<1000; i++) + { + UC; + c = allocone(ap, 1000, 1); + if (ranint(8) == 0) d = c; + if (ranint(8) == 0) e = c; + if (ranint(8) == 0) f = c; + if (ranint(8) == 0) g = c; + UC; + setref(b, 0, c); + UC; + setref(c, 1, d); + UC; + setref(c, 2, e); + UC; + setref(c, 3, f); + UC; + setref(c, 4, g); + UC; + b = c; + } + } + DC; + DMC; + + checkfrom(a); + + mps_ap_destroy(ap); + comment("Destroyed ap."); + + mps_pool_destroy(pool); + comment("Destroyed pool."); + + mps_fmt_destroy(format); + comment("Destroyed format."); + + mps_root_destroy(root); + comment("Destroyed root."); + + mps_thread_dereg(thread); + comment("Deregistered thread."); + + mps_space_destroy(space); + comment("Destroyed space."); + +} + +int main(void) +{ + void *m; + stackpointer=&m; /* hack to get stack pointer */ + + easy_tramp(test); + return 0; +} diff --git a/mps/qa/function/31.c b/mps/qa/function/31.c new file mode 100644 index 00000000000..352061f31e0 --- /dev/null +++ b/mps/qa/function/31.c @@ -0,0 +1,106 @@ +/* TEST_HEADER + summary = regression test for request.dylan.170459 (scanning and buffers in AWL) + language = c + link = testlib.o awlfmt.o +END_HEADER +*/ + +#include "testlib.h" +#include "mpscawl.h" +#include "mpscamc.h" +#include "awlfmt.h" + +void *stackpointer; + +static void test(void) +{ + mps_space_t space; + mps_pool_t poolamc, poolawl; + mps_thr_t thread; + mps_root_t root; + + mps_fmt_t format; + mps_ap_t apamc, apawl; + + mycell *a, *b, *c, *d; + + int i; + int j; + + alloccomments = 1; + fixcomments = 1; + deathcomments = 1; + formatcomments = 1; + fixcomments = 1; + + cdie(mps_space_create(&space), "create space"); + + cdie(mps_thread_reg(&thread, space), "register thread"); + + cdie( + mps_root_create_reg(&root, space, MPS_RANK_AMBIG, 0, thread, + mps_stack_scan_ambig, stackpointer, 0), + "create root"); + + cdie( + mps_fmt_create_A(&format, space, &fmtA), + "create format"); + + cdie( + mps_pool_create(&poolamc, space, mps_class_amc(), format), + "create pool"); + + cdie( + mps_pool_create(&poolawl, space, mps_class_awl(), format), + "create pool"); + + cdie( + mps_ap_create(&apawl, poolawl, MPS_RANK_EXACT), + "create ap"); + + cdie( + mps_ap_create(&apamc, poolamc, MPS_RANK_EXACT), + "create ap"); + + a = allocone(apawl, 1, 1); + b = allocone(apawl, 1, 1); + c = allocone(apawl, 1000, 1); + + setref(b, 0, c); + setref(c, 0, b); + + for(i=0; i<1000; i++) { + b = allocdumb(apamc, 0x400*1024, 0); + comment("%i of 1000.", j); + } + + mps_ap_destroy(apawl); + mps_ap_destroy(apamc); + comment("Destroyed aps."); + + mps_pool_destroy(poolamc); + mps_pool_destroy(poolawl); + comment("Destroyed pools."); + + mps_fmt_destroy(format); + comment("Destroyed format."); + + mps_root_destroy(root); + comment("Destroyed root."); + + mps_thread_dereg(thread); + comment("Deregistered thread."); + + mps_space_destroy(space); + comment("Destroyed space."); + +} + +int main(void) +{ + void *m; + stackpointer=&m; /* hack to get stack pointer */ + + easy_tramp(test); + return 0; +} diff --git a/mps/qa/function/32.c b/mps/qa/function/32.c new file mode 100644 index 00000000000..6bcf18b3070 --- /dev/null +++ b/mps/qa/function/32.c @@ -0,0 +1,106 @@ +/* TEST_HEADER + summary = random test of exact references in AWL + language = c + link = testlib.o awlfmt.o +END_HEADER +*/ + +#include "testlib.h" +#include "mpscawl.h" +#include "mpscamc.h" +#include "awlfmt.h" + +void *stackpointer; + +static void test(void) +{ + mps_space_t space; + mps_pool_t poolamc, poolawl; + mps_thr_t thread; + mps_root_t root; + + mps_fmt_t format; + mps_ap_t apamc, apawl; + + mycell *a[100], *b; + + int i; + int j; + int k,n,z; + + alloccomments = 1; + + cdie(mps_space_create(&space), "create space"); + + cdie(mps_thread_reg(&thread, space), "register thread"); + + cdie( + mps_root_create_reg(&root, space, MPS_RANK_AMBIG, 0, thread, + mps_stack_scan_ambig, stackpointer, 0), + "create root"); + + cdie( + mps_fmt_create_A(&format, space, &fmtA), + "create format"); + + cdie( + mps_pool_create(&poolamc, space, mps_class_amc(), format), + "create pool"); + + cdie( + mps_pool_create(&poolawl, space, mps_class_awl(), format), + "create pool"); + + cdie( + mps_ap_create(&apawl, poolawl, MPS_RANK_EXACT), + "create ap"); + + cdie( + mps_ap_create(&apamc, poolamc, MPS_RANK_EXACT), + "create ap"); + + for(i=0; i<100; i++) { + a[i] = allocone(apawl, 6, 1); + } + + for(i=0; i<100000; i++) { + j = ranint(100); + comment("New object %i", j); + a[j] = allocone(apawl, 5+ranint(50), 1); + k = ranint(100); + z = ranint(5); + comment("setting %i (%p) %i", k, a[k], z); + setref(a[k], z, a[j]); + b = allocdumb(apamc, 0x400*64, 0); + } + + mps_ap_destroy(apawl); + mps_ap_destroy(apamc); + comment("Destroyed aps."); + + mps_pool_destroy(poolamc); + mps_pool_destroy(poolawl); + comment("Destroyed pools."); + + mps_fmt_destroy(format); + comment("Destroyed format."); + + mps_root_destroy(root); + comment("Destroyed root."); + + mps_thread_dereg(thread); + comment("Deregistered thread."); + + mps_space_destroy(space); + comment("Destroyed space."); + +} + +int main(void) +{ + void *m; + stackpointer=&m; /* hack to get stack pointer */ + + easy_tramp(test); + return 0; +} diff --git a/mps/qa/function/33.c b/mps/qa/function/33.c new file mode 100644 index 00000000000..0036f4fe7e4 --- /dev/null +++ b/mps/qa/function/33.c @@ -0,0 +1,106 @@ +/* TEST_HEADER + summary = random test of exact references in AWL + language = c + link = testlib.o awlfmt.o +END_HEADER +*/ + +#include "testlib.h" +#include "mpscawl.h" +#include "mpscamc.h" +#include "awlfmt.h" + +void *stackpointer; + +static void test(void) +{ + mps_space_t space; + mps_pool_t poolamc, poolawl; + mps_thr_t thread; + mps_root_t root; + + mps_fmt_t format; + mps_ap_t apamc, apawl; + + mycell *a[100], *b; + + int i; + int j; + int k,n,z; + + alloccomments = 1; + + cdie(mps_space_create(&space), "create space"); + + cdie(mps_thread_reg(&thread, space), "register thread"); + + cdie( + mps_root_create_reg(&root, space, MPS_RANK_AMBIG, 0, thread, + mps_stack_scan_ambig, stackpointer, 0), + "create root"); + + cdie( + mps_fmt_create_A(&format, space, &fmtA), + "create format"); + + cdie( + mps_pool_create(&poolamc, space, mps_class_amc(), format), + "create pool"); + + cdie( + mps_pool_create(&poolawl, space, mps_class_awl(), format), + "create pool"); + + cdie( + mps_ap_create(&apawl, poolawl, MPS_RANK_EXACT), + "create ap"); + + cdie( + mps_ap_create(&apamc, poolamc, MPS_RANK_EXACT), + "create ap"); + + for(i=0; i<100; i++) { + a[i] = allocone(apawl, 6, 1); + } + + for(i=0; i<100000; i++) { + j = ranint(100); + comment("New object %i", j); + a[j] = allocone(apawl, 5+ranint(50), 1); + k = ranint(50); + z = ranint(5); + comment("setting %i (%p) %i", k, a[k], z); + setref(a[k], z, a[j]); + b = allocdumb(apamc, 0x400*64, 0); + } + + mps_ap_destroy(apawl); + mps_ap_destroy(apamc); + comment("Destroyed aps."); + + mps_pool_destroy(poolamc); + mps_pool_destroy(poolawl); + comment("Destroyed pools."); + + mps_fmt_destroy(format); + comment("Destroyed format."); + + mps_root_destroy(root); + comment("Destroyed root."); + + mps_thread_dereg(thread); + comment("Deregistered thread."); + + mps_space_destroy(space); + comment("Destroyed space."); + +} + +int main(void) +{ + void *m; + stackpointer=&m; /* hack to get stack pointer */ + + easy_tramp(test); + return 0; +}