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
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.
- Obtain a "clean" copy of the OS/161 sources.
- Patch them using your generated changeset file.
- Configure, build, and test the resulting system.
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
% cd kern/conf
% ./config ASSTx
% cd ../compile/ASSTx
% bmake depend
% bmake install
Now cd ~/cs3231/root, make sure there's a configuration file
then run any tests you would like on your
new kernel. It should behave the way you expect your final submission
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.