5 -3 args-argc: argc is not set correctly
6 -3 args-argv0: executable name not passed as argv[0]
7 -3 args-multiple: passing multiple arguments fails
8 -3 args-dblspace: using multiple spaces between arguments fails
12 -3 syscall-bad-sp: system call with a bad stack pointer must not crash OS
13 -3 syscall-bad-arg: syscall with argument off top of stack must not crash OS
14 -3 syscall-boundary: syscall with args across page boundary must work
17 System calls: halt, exec
18 -1 halt: halt system call fails
19 -2 exit: exit system call malfunctions
23 -2 create-normal: create a file in the most normal way
24 -1 create-empty: pass empty string to create system call
25 -1 create-null: pass null pointer to create system call
26 -1 create-bad-ptr: pass invalid pointer to create system call
27 -1 create-long: pass long file name to create system call
28 -1 create-exists: pass name of an existing file to create system call
29 -1 create-boundary: pass name of file crossing page boundary
33 -2 open-normal: open a file in the most normal way
34 -2 open-missing: try to open a file that doesn't exist
35 -2 open-boundary: pass name of file crossing page boundary
36 -1 open-empty: pass empty string to open system call
37 -1 open-null: pass null pointer to open system call
38 -1 open-twice: open the same file twice
42 -2 close-normal: close an open file in the most normal way
43 -2 close-twice: try to close an open file twice
44 -1 close-stdin: try to close stdin
45 -1 close-stdout: try to close stdout
46 -1 close-bad-fd: try to close invalid file descriptor
50 -2 read-normal: read from open file in most normal way
51 -2 read-bad-ptr: pass invalid pointer to read system call
52 -2 read-boundary: pass buffer crossing page boundary
53 -1 read-zero: try to read zero bytes
54 -1 read-stdout: try to read from stdout
55 -1 read-bad-fd: try to read from invalid file descriptor
59 -2 write-normal: write to open file in most normal way
60 -2 write-bad-ptr: pass invalid pointer to write system call
61 -2 write-boundary: pass buffer crossing page boundary
62 -1 write-zero: try to write zero bytes
63 -1 write-stdin: try to write to stdin
64 -1 write-bad-fd: try to write to invalid file descriptor
68 -2 exec-once: call exec/join once
69 -2 exec-multiple: call exec/join multiple times
70 -2 exec-missing: exec of nonexistent file must return -1
71 -1 exec-bad-ptr: pass invalid pointer to exec system call
75 -2 join-simple: join must return proper value
76 -2 join-twice: join a subprocess two times
77 -2 join-killed: join must return -1 if subprocess killed by kernel
78 -1 join-bad-pid: join must return if passed bad pid
82 -2 multi-recurse: test recursively executing subprocesses
83 -2 multi-oom: exhausting user memory must not crash OS
84 -2 multi-fragment: programs must load even if user memory is fragmented
85 -2 multi-parent-fd: child must not be able to close parent's fds