diff options
Diffstat (limited to 'user/usertests.c')
-rw-r--r-- | user/usertests.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/user/usertests.c b/user/usertests.c index beca8f9..ef70bfb 100644 --- a/user/usertests.c +++ b/user/usertests.c @@ -1438,6 +1438,13 @@ sbrktest(void) printf(stdout, "sbrk test\n"); oldbrk = sbrk(0); + // does sbrk() return the expected failure value? + a = sbrk(1024*1024*1024); + if(a != (char*)0xffffffffffffffffL){ + printf(stdout, "sbrk(<toomuch>) returned %p\n", a); + exit(); + } + // can one sbrk() less than a page? a = sbrk(0); for(i = 0; i < 5000; i++){ @@ -1466,7 +1473,7 @@ sbrktest(void) // can one grow address space to something big? a = sbrk(0); - amt = (BIG) - (uint64)a; + amt = BIG - (uint64)a; p = sbrk(amt); if (p != a) { printf(stdout, "sbrk test failed to grow big address space; enough phys mem?\n"); @@ -1478,7 +1485,7 @@ sbrktest(void) // can one de-allocate? a = sbrk(0); c = sbrk(-4096); - if(c == (char*)0xffffffff){ + if(c == (char*)0xffffffffffffffffL){ printf(stdout, "sbrk could not deallocate\n"); exit(); } @@ -1551,7 +1558,7 @@ sbrktest(void) kill(pids[i]); wait(); } - if(c == (char*)0xffffffff){ + if(c == (char*)0xffffffffffffffffL){ printf(stdout, "failed sbrk leaked memory\n"); exit(); } |