summaryrefslogtreecommitdiffstats
path: root/pintos-progos/tests/vm/pt-grow-stk-sc.c
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2012-03-26 12:54:45 +0200
committermanuel <manuel@mausz.at>2012-03-26 12:54:45 +0200
commitb5f0874cd96ee2a62aabc645b9626c2749cb6a01 (patch)
tree1262e4bbe0634de6650be130c36e0538240f4cbf /pintos-progos/tests/vm/pt-grow-stk-sc.c
downloadprogos-b5f0874cd96ee2a62aabc645b9626c2749cb6a01.tar.gz
progos-b5f0874cd96ee2a62aabc645b9626c2749cb6a01.tar.bz2
progos-b5f0874cd96ee2a62aabc645b9626c2749cb6a01.zip
initial pintos checkin
Diffstat (limited to 'pintos-progos/tests/vm/pt-grow-stk-sc.c')
-rw-r--r--pintos-progos/tests/vm/pt-grow-stk-sc.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/pintos-progos/tests/vm/pt-grow-stk-sc.c b/pintos-progos/tests/vm/pt-grow-stk-sc.c
new file mode 100644
index 0000000..3efbb5f
--- /dev/null
+++ b/pintos-progos/tests/vm/pt-grow-stk-sc.c
@@ -0,0 +1,32 @@
1/* This test checks that the stack is properly extended even if
2 the first access to a stack location occurs inside a system
3 call.
4
5 From Godmar Back. */
6
7#include <string.h>
8#include <syscall.h>
9#include "tests/vm/sample.inc"
10#include "tests/lib.h"
11#include "tests/main.h"
12
13void
14test_main (void)
15{
16 int handle;
17 int slen = strlen (sample);
18 char buf2[65536];
19
20 /* Write file via write(). */
21 CHECK (create ("sample.txt", slen), "create \"sample.txt\"");
22 CHECK ((handle = open ("sample.txt")) > 1, "open \"sample.txt\"");
23 CHECK (write (handle, sample, slen) == slen, "write \"sample.txt\"");
24 close (handle);
25
26 /* Read back via read(). */
27 CHECK ((handle = open ("sample.txt")) > 1, "2nd open \"sample.txt\"");
28 CHECK (read (handle, buf2 + 32768, slen) == slen, "read \"sample.txt\"");
29
30 CHECK (!memcmp (sample, buf2 + 32768, slen), "compare written data against read data");
31 close (handle);
32}