Tools for CSE courses

Final tests

Bodek can run also a final test on the submissions.
The final test would normally be run after the assignment's Due date.
It can be run on all submissions by selecting Generate/Regenerate all Bodek feedback PDFs from the Grading action menu on the View/grade all submissions page (or from the Assignment administration block).
It can be run on a single submission by selecting Generate/Regenerate Bodek feedback PDF from the student's Edit drop-down menu on the View/grade all submissions page
Note: The options exist only if the final  test file exists. See below.

The final test works similarly to the presubmission test but with the following differences:
  • Instead of directory presubmission, files associated with the final test are placed in directory final i.e.
  • The PDF file generated by Bodek is stored as ~course/course-admin/bodek/assignments/<assignment>/final/pdf/<login>.pdf.
    It is available in Moodle (to both Student and Teachers), alongside any other feedback files, as feedback.pdf (unless Feedback type of Feedback files is disabled in the assignment Settings.)
  • Students are not sent email
  • The profile file can have an additional directive max_test_time.
    This sets the maximum time, in seconds, the test is allowed to run. (It defaults to 300 - the same as for the presubmission test). Maximum value is 3600.
  • File descriptor 3 (socket) is provided for the test script to write to.
    Anything written to this file descriptor is copied to ~<course>/course-admin/bodek/assignments/<assignment>/final/results/<login>

Writing to the results file [edit]

Special care should be taken with the file descriptor 3 as, technically, also the student's submission code could write to it.
A simple way to detect when this happens is to start writing to the file descriptor only after all the tests have run and to begin with some special header.
A better option is to close the descriptor before executing the student's code. For example, by using close_fds = True to close all descriptors in each execution of the student's code as a python subprocess; by using 3>&- on each exec of the student's code in a sh/bash script; or by initially setting the FD_CLOEXEC (close-on-exec flag) on fd 3 with fcntl in e.g. python or perl. See Closing file descriptor 3.
Note: The descriptor can't be closed if the submission code is run as a python module.

Preventing students seeing the feedback file [edit]

The simplest way to prevent students seeing any feedback, including feedback comments, grades, and feedback files, is to hide the item in the Gradebook.
See question How can I hide feedback and grades until all submissions are graded? in the Assignment miniguide.