From cb6792ec0bec42fca8ea22ee8dd2634eab006e9c Mon Sep 17 00:00:00 2001 From: Richard Tucker Date: Mon, 27 Apr 1998 12:33:42 +0100 Subject: [PATCH] New unit new test Copied from Perforce Change: 19456 ServerID: perforce.ravenbrook.com --- mps/qa/function/115.c | 175 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 mps/qa/function/115.c diff --git a/mps/qa/function/115.c b/mps/qa/function/115.c new file mode 100644 index 00000000000..379f1cfc6f1 --- /dev/null +++ b/mps/qa/function/115.c @@ -0,0 +1,175 @@ +/* $HopeName$ +TEST_HEADER + summary = EPDL allocation test (with new alignment) + language = c + link = testlib.o +END_HEADER +*/ + +#include +#include "testlib.h" +#include "mpscepdl.h" +#include "mpsavm.h" + +#define MAXNUMBER 1000000 + +void *stackpointer; +mps_space_t space; + +static struct {mps_addr_t addr; size_t size;} queue[MAXNUMBER]; + +enum {SEQ=0, RAN=1, SEQGAP=2, RANGAP=3, DUMMY=4}; +static char *tdesc[] = {"sequential", "random", + "sequential gap", "random gap", "dummy"}; + +static void setobj(mps_addr_t a, size_t size, unsigned char val) +{ + unsigned char *b; + b = a; + + while (size>0) + { + *b=val; + /* comment("%p = %i", b, (int) val); + */ + b++; + size--; + } +} + +static int chkobj(mps_addr_t a, size_t size, unsigned char val) +{ + unsigned char *b; + b = a; + + while (size>0) + { + /* comment("%p == %i", b, (int) val); + */ + if (*b != val) return 0; + b++; + size--; + } + return 1; +} + +static void dt(int kind, + size_t extendBy, size_t avgSize, size_t maxSize, + size_t mins, size_t maxs, int number, int iter) +{ + mps_pool_t pool; + int i, hd; + clock_t time0, time1; + size_t size; + int secs; + + asserts(number <= MAXNUMBER, "number too big"); + + time0 = clock(); + asserts(time0 != -1, "processor time not available"); + + die( + mps_pool_create(&pool, space, mps_class_epdl(), + extendBy, avgSize, 8), + "create pool"); + + for(hd=0; hd