QUADTREE PROJECT TESTING AND SUBMISSION INSTRUCTIONS ==================================================== These are instructions for testing and submitting your quadtree project. Contact the TA if you have any questions. TESTING ======= All project grading will take place on one of the linux.grace.umd.edu machines, so make sure your project compiles and runs properly on those machines. Test inputs will be sent to your program's standard input, and output will be read from standard output. All project test inputs and outputs will be accessible in /afs/glue/class/fall2017/cmsc/420/0301/public on GRACE, as well as on the class website. Each test input ends with ".in" and has a corresponding test output ending with ".out". To run your project against a test input, use the following invocation: ./project-exe-bin < test-file.in > my-test-file.out This will run your program using test-file.in as input, and will generate my-test-file.out as output. You can then compare your program's output with the expected output as follows: diff -ubw test-file.out my-test-file.out MAKEFILE ======== Before submitting, in your project directory, create a Makefile that will do all necessary compilation. The Makefile should be written in such a way so that when a "gmake" command is issued, a correctly-named binary executable is generated. The executable name will vary depending on the project part. For part 2 of the project, the executable should be called "part2" (no spaces). For part 3, the executable name should be "part3", and similarly "part4" for part 4. Here's a sample Makefile for part 2. It assumes that all source files are written in C++ and have a .cxx extension. If you are using C, then you just need to change the extension to .C and change the compiler for GCC. CXX = /usr/local/bin/g++ SRCS := $(wildcard *.cxx) OBJS = $(SRCS:.cxx=.o) EXE = part2 all : $(EXE) $(EXE) : $(OBJS) $(CXX) $(OBJS) -o $@ %.o : %.cxx $(CXX) -c $< -o $@ clean : rm -f $(OBJS) $(EXE) If the above makefile doesn't work (with some editting) try the one below: This one assumes that all the source files are writen in C++ and have the .cpp extension CC = g++ SRCS := $(wildcard *.cpp) OBJS = $(SRCS:.cpp=.o) EXE = part2 all : $(EXE) $(EXE) : $(OBJS) $(CC) $(OBJS) -o $@ %.o : %.cpp $(CC) -c $< -o $@ clean : rm -f $(OBJS) $(EXE) Contact the TA if you need help writing a Makefile. TAR.GZ ====== Once you have your project files in order, create a tar.gz archive containing all your project files. To do this, enter your project directory and type the following command: gtar -cvzf .tar.gz * You can also verify that the project archive was created properly and contains all necessary project files by using this command: gtar -tvzf .tar.gz I advise you to test your archive before submitting by extracting all files and attempting to compile it from scratch using your Makefile. This will save a lot of time and headaches later on. SUBMITTING ========== Now that your project archive contains your submission, all that remains is to use the submit script to send in your submission. submit requires an assignment number to be specified when submitting a project. For the quadtree project, the assignment number will correspond to what part of the project is being submitted: for part 2, the assignment number will be 2, 3 for part 3, and 4 for part 4. The full submit command looks like this: submit 2017 fall cmsc 420 0301 where is the assignment number and is your .tar.gz archive named after your UID. After verifying the submission information and entering "yes", you should see the following message: Assignment submitted! Note that SUBMIT DOES NOT TEST YOUR PROJECT. You are fully responsible for your project's correctness, so make sure that it works! Also, if you make multiple submissions, only your last submission will be graded. You can further verify that the submission succeeded by checking your submission directory on GRACE, which for our class is /afs/glue/class/fall2017/cmsc/420/0301/submit/ You should see a file in that directory corresponding to the file you just submitted, with the timestamp appended to the filename. This is the sequence of commands that will be used to test your projects: gtar -xzf gmake ./ < testfile.in > projtestfile.out diff -ubw testfile.out projtestfile.out Make sure that your project works with this sequence and it will make everyone's life easier. ---- Please contact the TA if you have any questions.