Work on userprog tests.
[pintos-anon] / grading / userprog / tests.txt
1 CORRECTNESS [[total]]
2 ---------------------
3
4 Argument passing
5   -5 args-argc: argc is not set correctly
6   -5 args-argv0: executable name not passed as argv[0]
7   -5 args-multiple: passing multiple arguments fails
8   -5 args-dblspace: using multiple spaces between arguments fails
9
10 System calls: halt, exec 
11   -1 halt: halt system call fails
12   -2 exit: exit system call malfunctions
13 Score: /3
14
15 System calls: create
16   -2 create-normal: create a file in the most normal way
17   -1 create-empty: pass empty string to create system call
18   -1 create-null: pass null pointer to create system call
19   -1 create-bad-ptr: pass invalid pointer to create system call
20   -1 create-long: pass long file name to create system call
21   -1 create-exists: pass name of an existing file to create system call
22 Score: /7
23
24 System calls: open
25   -2 open-normal: open a file in the most normal way
26   -2 open-missing: try to open a file that doesn't exist
27   -1 open-empty: pass empty string to open system call
28   -1 open-null: pass null pointer to open system call
29   -1 open-twice: open the same file twice
30 Score: /7
31
32 System calls: close
33   -2 close-normal: close an open file in the most normal way
34   -2 close-twice: try to close an open file twice
35   -1 close-stdin: try to close stdin
36   -1 close-stdout: try to close stdout
37   -1 close-bad-fd: try to close invalid file descriptor
38 Score: /7
39
40 System calls: read
41   -2 read-normal: read from open file in most normal way
42   -2 read-bad-ptr: pass invalid pointer to read system call
43   -1 read-zero: try to read zero bytes
44   -1 read-stdout: try to read from stdout
45   -1 read-bad-fd: try to read from invalid file descriptor
46 Score: /7
47
48 System calls: write
49   -2 write-normal: write to open file in most normal way
50   -2 write-bad-ptr: pass invalid pointer to write system call
51   -1 write-zero: try to write zero bytes
52   -1 write-stdin: try to write to stdin
53   -1 write-bad-fd: try to write to invalid file descriptor
54 Score: /7
55
56 System calls: exec
57   -2 exec-once: call exec/join once
58   -2 exec-multiple: call exec/join multiple times
59   -2 exec-missing: exec of nonexistent file must return -1
60   -1 exec-bad-ptr: pass invalid pointer to exec system call
61 Score: /7
62
63 System calls: join
64   -2 join-simple: join must return proper value
65   -2 join-twice: join a subprocess two times
66   -2 join-killed: join must return -1 if subprocess killed by kernel
67   -1 join-bad-pid: join must return if passed bad pid
68 Score: /7
69
70 Multiprogramming
71   -
72
73 3. Multiprogramming / Page boundary checking (/50 points)
74         Multiprogramming: Exec'ing two simple programs                  -30 
75                           from another program doesn't work
76         Open/Create fails on page boundary                              -5
77         Read/Write fails on page boundary                               -5
78         Can close file opened by parent                                 -5
79         Running out of physical memory crashes OS                       -5
80         Shell test doesn't work with normal page size                   -5 
81         Shell test doesn't work with smaller page size                  -5
82         Exec/Join tests 0 and 1 fail when we substitute a new 
83         bitmap.cc that returns pages in a random order.                 -5 
84
85 -----------
86 Notes on the shell tests :
87
88 Large page size echo/matmult test
89   -5 if nothing works no matter what you do
90   -4 if shell works in either case but matmult doesn't work in either case
91
92 Small page size echo/matmult test
93   -5 if nothing works no matter what you do
94   -4 if shell works in either case but matmult doesn't work in either case
95 ------------
96