summaryrefslogtreecommitdiff
path: root/usertests.c
diff options
context:
space:
mode:
Diffstat (limited to 'usertests.c')
-rw-r--r--usertests.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/usertests.c b/usertests.c
index cc2601c..2bd21ba 100644
--- a/usertests.c
+++ b/usertests.c
@@ -1229,6 +1229,38 @@ forktest(void)
printf(1, "fork test OK\n");
}
+void
+sbrktest(void)
+{
+ printf(stdout, "sbrk test\n");
+ char *a = sbrk(0);
+ int i;
+ for(i = 0; i < 5000; i++){
+ char *b = sbrk(1);
+ if(b != a){
+ printf(stdout, "sbrk test failed %d %x %x\n", i, a, b);
+ exit();
+ }
+ *b = 1;
+ a = b + 1;
+ }
+ int pid = fork();
+ if(pid < 0){
+ printf(stdout, "sbrk test fork failed\n");
+ exit();
+ }
+ char *c = sbrk(1);
+ c = sbrk(1);
+ if(c != a + 1){
+ printf(stdout, "sbrk test failed post-fork\n");
+ exit();
+ }
+ if(pid == 0)
+ exit();
+ wait();
+ printf(stdout, "sbrk test OK\n");
+}
+
int
main(int argc, char *argv[])
{
@@ -1240,6 +1272,8 @@ main(int argc, char *argv[])
}
close(open("usertests.ran", O_CREATE));
+ sbrktest();
+
opentest();
writetest();
writetest1();