Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
New module: mmalloc (mapped malloc)
[simgrid.git] / src / xbt / mmalloc / test / mmalloc_test.c
1 #include "../mmalloc.h"
2 #include <stdio.h>
3 #include <assert.h>
4 #include <fcntl.h>
5 #include <sys/stat.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #include <unistd.h>
9
10
11 #define BUFFSIZE 204800
12 #define TESTSIZE 100
13
14 int main() {
15   void *A,*B;
16   int fd1,fd2;
17   void *heapA,*heapB;  
18   void * pointers[TESTSIZE];
19 /*
20   unlink("heap1");
21   fd1=open("heap1",O_CREAT|O_RDWR,S_IRWXU|S_IRWXG|S_IRWXO);
22   assert(fd1>0);
23     close(fd1);
24     fd1=open("heap1",O_RDWR);
25     assert(fd1>0);
26   */
27
28   heapA = mmalloc_attach(-1,sbrk(0) + BUFFSIZE);
29   if (heapA==NULL) {
30     perror("attach 1 failed");
31     fprintf(stderr,"bye\n");
32     exit(1);
33   }
34
35   fprintf(stderr,"HeapA=%p\n",heapA);
36   
37   int i, size;
38   for(i = 0; i < TESTSIZE; i++){
39     size = rand () % 1000;
40     pointers[i] = mmalloc(heapA,size);
41     fprintf(stderr,"%d bytes allocated at %p\n",size, pointers[i]);
42   }
43   char c;
44   scanf("%c",&c);
45
46   for(i = 0; i < TESTSIZE; i++){
47     mfree(heapA,pointers[i]);
48   }  
49   
50   fprintf(stderr,"Ok bye bye\n");
51   return 0;
52 }