Tools for CSE courses
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>
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.
See question How can I hide feedback and grades until all submissions are graded? in the Assignment miniguide.