summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/rts/testblockalloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/ghc-regress/rts/testblockalloc.c')
-rw-r--r--testsuite/tests/ghc-regress/rts/testblockalloc.c75
1 files changed, 0 insertions, 75 deletions
diff --git a/testsuite/tests/ghc-regress/rts/testblockalloc.c b/testsuite/tests/ghc-regress/rts/testblockalloc.c
deleted file mode 100644
index 5ccc14bf59..0000000000
--- a/testsuite/tests/ghc-regress/rts/testblockalloc.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include "Rts.h"
-
-#include <stdio.h>
-
-extern bdescr *allocGroup_lock_lock(nat n);
-extern void freeGroup_lock(bdescr *p);
-
-const int ARRSIZE = 256;
-const int LOOPS = 100;
-const int MAXALLOC = ((8 * 1024 * 1024) / BLOCK_SIZE - 1);
-//const int MAXALLOC = ((64 * 1024 * 1024) / BLOCK_SIZE - 1);
-const int SEED = 0xf00f00;
-
-extern lnat mblocks_allocated;
-
-int main (int argc, char *argv[])
-{
- int i, j, b;
-
- bdescr *a[ARRSIZE];
-
- srand(SEED);
-
- hs_init(&argc, &argv);
-
- // repeatedly sweep though the array, allocating new random-sized
- // objects and deallocating the old ones.
- for (i=0; i < LOOPS; i++)
- {
- for (j=0; j < ARRSIZE; j++)
- {
- if (i > 0)
- {
- IF_DEBUG(block_alloc, debugBelch("A%d: freeing %p, %d blocks @ %p\n", j, a[j], a[j]->blocks, a[j]->start));
- freeGroup_lock(a[j]);
- DEBUG_ONLY(checkFreeListSanity());
- }
- b = (rand() % MAXALLOC) + 1;
- a[j] = allocGroup_lock(b);
- IF_DEBUG(block_alloc, debugBelch("A%d: allocated %p, %d blocks @ %p\n", j, a[j], b, a[j]->start));
- // allocating zero blocks isn't allowed
- DEBUG_ONLY(checkFreeListSanity());
- }
- }
-
- for (j=0; j < ARRSIZE; j++)
- {
- freeGroup_lock(a[j]);
- }
-
- // this time, sweep forwards allocating new blocks, and then
- // backwards deallocating them.
- for (i=0; i < LOOPS; i++)
- {
- for (j=0; j < ARRSIZE; j++)
- {
- b = (rand() % MAXALLOC) + 1;
- a[j] = allocGroup_lock(b);
- IF_DEBUG(block_alloc, debugBelch("B%d,%d: allocated %p, %d blocks @ %p\n", i, j, a[j], b, a[j]->start));
- DEBUG_ONLY(checkFreeListSanity());
- }
- for (j=ARRSIZE-1; j >= 0; j--)
- {
- IF_DEBUG(block_alloc, debugBelch("B%d,%d: freeing %p, %d blocks @ %p\n", i, j, a[j], a[j]->blocks, a[j]->start));
- freeGroup_lock(a[j]);
- DEBUG_ONLY(checkFreeListSanity());
- }
- }
-
- DEBUG_ONLY(checkFreeListSanity());
-
- hs_exit(); // will do a memory leak test
-
- exit(0);
-}