Assignment Submission Guidelines

Introduction and Warning

You are using several tools for the first time during these assignments. It is quite possible to develop a working assignment, and then generate a broken submission that is not indicative of your work, either by carelessness or a simple mistake.

Also, for those working at home, and not wishing to transfer entire source trees to and from the schools computers, it would be advantageous to have a simple method to take a submission generated at home, and test it at UNSW.

To address these to issues, here is an outline of how to test that your changeset file represents what you expect (be it generated at home or UNSW)

If you're having trouble with submitting, or with understanding any of the instructions below check the knowledge base in the forums. It might have the answers. You could also post the question in the assignment forum. Someone else may have run into your problem already.



We will do the following steps to validate your assignment submission.

Note: We do something very similar for our auto-testing.


If you don't have a ~/cs3231, make it now.

In a temporary directory, e.g. ~/tmp, copy the original sources to your assignment. For example:

% cd ~/tmp
% cp -r ~cs3231/assigns/asstX/src .

Move to the top of the source tree and apply the changeset you made.

% cd src
% patch -p0 <~/asstX.diff

You should now have a mostly identical source tree to the one you used to generate the submission.

To test the code, you now configure, build, and test the tree.

% ./configure
% bmake
% cd kern/conf
% ./config ASSTx
% cd ../compile/ASSTx
% bmake depend
% bmake
% bmake install

Now cd ~/cs3231/root, make sure there's a configuration file (sys161.conf) there, then run any tests you would like on your new kernel. It should behave the way you expect your final submission should.

If it does, you can safely assume the changeset you generated for submission is representative of your work. You can delete this temporary source tree, and submit your asstX.diff file.

If it doesn't, you need to figure out why your changeset is broken.

Note: In our auto-testing we run all tests from the command line. You should ensure that your assignment works as expected when run in this way. To run tests from the command line invoke the simulator with the commands you want to run as a semicolon-delimited string after the kernel. For example, to run the the array and bitmap tests, you would use the following command:

% sys161 kernel "at;bt"

WARNING: the command line arguments are processed without waiting for any spawned threads to start or exit. This means the "q" (quit) command may be processed (thus terminating the simulator) before any other threads have had a chance to run.