diff options
Diffstat (limited to 'usertests.c')
-rw-r--r-- | usertests.c | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/usertests.c b/usertests.c index 0d3e2bc..cb01c92 100644 --- a/usertests.c +++ b/usertests.c @@ -117,14 +117,50 @@ exitwait(void) puts("exitwait ok\n"); } +void +mem(void) +{ + void *m = malloc(4096); + void *m1, *m2; + + free(m + 3*1024); + free(m + 2*1024); + free(m + 1024); + free(m); + m1 = malloc(4096); + if (m1 != m) { + puts("didn't coalesce\n"); + exit(); + } + free(m1); + + m1 = 0; + while ((m2 = malloc(1024)) != 0) { + *(char **) m2 = m1; + m1 = m2; + } + while (m1) { + m2 = *(char **)m1; + free(m1); + m1 = m2; + } + m1 = malloc(1024*20); + if (m1 == 0) { + puts("couldn't allocate mem?!!\n"); + exit(); + } + free(m1); +} + int main(int argc, char *argv[]) { puts("usertests starting\n"); - pipe1(); - preempt(); - exitwait(); + // pipe1(); + // preempt(); + // exitwait(); + mem(); puts("usertests finished\n"); exit(); |