This PR integrates the StdioTest stage's "auto-generate expected output of test cases" feature. If it is on, TAs can simply submit the assignment's solutions and the Grader will automatically generate the expected output of each test case in the StdioTest stage.
Changes
UI Changes:
See the "Screenshots" section below.
Stage Reports:
Stage report for Run stage, which contains the generated expected output
Fix missing report for StdioTest stage in student submission if auto-generate is on
If the auto-generate feature is on, the StdioTest stage will be modularized into Run and Diff. Hence, we re-generate the missing StdioTest stage report by merging the stage reports of Run and Diff together.
API:
New /api/configs/[assignmentConfigId]/generated API for querying files generated by the Grader
Uses the new /decompression webhook to trigger decompression and push a grading task to Redis (if grade immediately)
The motivation behind using the new webhook is explained here.
:warning: Dependencies
Do NOT merge this PR to
master
blindly! This PR depends on multiple features in other repos. Please deploy these changes in the given order:StdioTest
stage.temp/feature/autogenerate-testcase
is merged tostable
branch/decompression
hook to trigger decompression manuallyconsole
'smaster
Decompression
event trigger insubmissions
tableThe motivation for Steps 2 and 5 is explained here.
Description
This PR integrates the
StdioTest
stage's "auto-generate expected output of test cases" feature. If it is on, TAs can simply submit the assignment's solutions and the Grader will automatically generate the expected output of each test case in theStdioTest
stage.Changes
UI Changes:
Stage Reports:
Run
stage, which contains the generated expected outputStdioTest
stage in student submission if auto-generate is onStdioTest
stage will be modularized intoRun
andDiff
. Hence, we re-generate the missingStdioTest
stage report by merging the stage reports ofRun
andDiff
together.API:
/api/configs/[assignmentConfigId]/generated
API for querying files generated by the Grader/decompression
webhook to trigger decompression and push a grading task to Redis (if grade immediately)Screenshots
GUI Assignment Builder
Submissions Page
/courses/[courseId]/assignments/[assignmentConfigId]/submissions
, a new "Submit Assignment Solution" button is addedStage Report
Run
Stage Report, which is found in the stage report when TAs submit the solution to auto-generate expected output