Make tests public. Rewrite most tests. Add tests.
[pintos-anon] / grading / userprog / tests.txt
diff --git a/grading/userprog/tests.txt b/grading/userprog/tests.txt
deleted file mode 100644 (file)
index e6d6599..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-CORRECTNESS [[total]]
----------------------
-
-Argument passing
-  -4 args-argc: argc is not set correctly
-  -4 args-single: passing single argument fails
-  -3 args-argv0: executable name not passed as argv[0]
-  -3 args-argvn: argv[argc] is not a null pointer
-  -3 args-multiple: passing multiple arguments fails
-  -3 args-dbl-space: using multiple spaces between arguments fails
-Score: /20
-
-System calls
-  -4 sc-boundary: syscall with args across page boundary must work
-  -3 sc-bad-sp: system call with a bad stack pointer must not crash OS
-  -3 sc-bad-arg: syscall with argument off top of stack must not crash OS
-Score: /10
-
-System calls: halt, exec 
-  -1 halt: halt system call fails
-  -1 exit: exit system call malfunctions
-Score: /2
-
-System calls: create
-  -2 create-normal: create a file in the most normal way
-  -1 create-empty: pass empty string to create system call
-  -1 create-null: pass null pointer to create system call
-  -1 create-bad-ptr: pass invalid pointer to create system call
-  -1 create-long: pass long file name to create system call
-  -1 create-exists: pass name of an existing file to create system call
-  -1 create-bound: pass name of file crossing page boundary
-Score: /8
-
-System calls: open
-  -2 open-normal: open a file in the most normal way
-  -2 open-missing: try to open a file that doesn't exist
-  -2 open-boundary: pass name of file crossing page boundary
-  -1 open-empty: pass empty string to open system call
-  -1 open-null: pass null pointer to open system call
-  -1 open-bad-ptr: pass invalid pointer to open system call
-  -1 open-twice: open the same file twice
-Score: /10
-
-System calls: close
-  -2 close-normal: close an open file in the most normal way
-  -2 close-twice: try to close an open file twice
-  -1 close-stdin: try to close stdin
-  -1 close-stdout: try to close stdout
-  -1 close-bad-fd: try to close invalid file descriptor
-Score: /7
-
-System calls: read
-  -2 read-normal: read from open file in most normal way
-  -2 read-bad-ptr: pass invalid pointer to read system call
-  -2 read-boundary: pass buffer crossing page boundary
-  -1 read-zero: try to read zero bytes
-  -1 read-stdout: try to read from stdout
-  -1 read-bad-fd: try to read from invalid file descriptor
-Score: /9
-
-System calls: write
-  -2 write-normal: write to open file in most normal way
-  -2 write-bad-ptr: pass invalid pointer to write system call
-  -2 write-boundary: pass buffer crossing page boundary
-  -1 write-zero: try to write zero bytes
-  -1 write-stdin: try to write to stdin
-  -1 write-bad-fd: try to write to invalid file descriptor
-Score: /9
-
-System calls: exec
-  -2 exec-once: call exec/wait once
-  -2 exec-arg: check command-line passing on exec
-  -2 exec-multiple: call exec/wait multiple times
-  -2 exec-missing: exec of nonexistent file must return -1
-  -1 exec-bad-ptr: pass invalid pointer to exec system call
-Score: /9
-
-System calls: wait
-  -2 wait-once: A creates B, A waits for B
-  -2 wait-twice: A creates B, A waits for B, A waits for B again
-  -2 wait-quick: A creates B, A waits for B, with different details
-  -2 wait-multiple: A creates B and C, A waits for B, A waits for C
-  -2 wait-nested: A creates B, B creates C, ..., B waits for C, A waits for B
-  -2 wait-dummy: A creates B, A waits for B, A waits for B
-  -2 wait-invalid: Waiting for an invalid pid must return immediately
-  -2 wait-other: Waiting for a child of another process must return immediately
-  -2 wait-no: A creates B and never waits for it (must not crash or hang)
-Score: /14
-
-Score: /7
-
-Multiprogramming
-  -3 multi-recurse: test recursively executing subprocesses
-  -3 multi-oom: exhausting user memory must not crash OS
-  -3 multi-child-fd: child must not be able to close parent's fds
-Score: /9