Concept Check
The following are conceptual questions meant to be answered in your design document. You won’t need to write any code for these questions, but you may need to read and reference some.
Take a look at the Project User Programs test suite in
src/tests/userprog
. Some of the test cases will intentionally provide invalid pointers as syscall arguments, in order to test whether your implementation safely handles the reading and writing of user process memory. Identify a test case that uses an invalid stack pointer (%esp
) when making a syscall. Provide the name of the test and explain how the test works. Your explanation should be very specific (i.e. use line numbers and the actual names of variables when explaining the test case).Please identify a test case that uses a valid stack pointer when making a syscall, but the stack pointer is too close to a page boundary leading to some of the syscall arguments being located in invalid memory. Provide the name of the test and explain how the test works. Your explanation should be very specific (i.e. use line numbers and the actual names of variables when explaining the test case).
Identify one part of the project requirements which is not fully tested by the existing test suite. Provide the name of the test and explain how the test works. Explain what kind of test needs to be added to the test suite, in order to provide coverage for that part of the project.