diff --git a/grading/judge-parameterizable-course/Dockerfile b/grading/judge-parameterizable-course/Dockerfile new file mode 100644 index 00000000..9e26eaa8 --- /dev/null +++ b/grading/judge-parameterizable-course/Dockerfile @@ -0,0 +1,10 @@ +# DOCKER-VERSION 1.1.0 + +#inherit from the java container +ARG VERSION=latest +FROM ingi/inginious-c-base:${VERSION} +LABEL org.inginious.grading.name="test-judge" +LABEL org.inginious.variable.isInExamMode='{"value": "False", "description": "A boolean indicating if the judge is in exam mode"}' +LABEL org.inginious.variable.signature='{"value": "def foo()", "description": "The signature should be: def nameFunction(param1, param2, ...)" }' +COPY run /course/run +COPY template.py /course/template.py diff --git a/grading/judge-parameterizable-course/run b/grading/judge-parameterizable-course/run new file mode 100755 index 00000000..3650c703 --- /dev/null +++ b/grading/judge-parameterizable-course/run @@ -0,0 +1,18 @@ +#!/bin/bash + +parsetemplate /task/tests.py +parsetemplate --output /task/student/code.py /course/template.py +output=$(python3 /task/tests.py 2> stderr.log) + +if [ "$(tail -n 1 stderr.log)" = "" ]; then + feedback-result success + feedback-msg -em "Your code is saved for future grading" +elif [ "$(tail -n 1 stderr.log)" != "OK" ]; then + error=$(grep "self" stderr.log | cut -d ',' -f3- | cut -d '"' -f2) + feedback-result failed + feedback-msg -em "$error" + exit 1 +else + feedback-result success + feedback-msg -em "Your code is correct" +fi diff --git a/grading/judge-parameterizable-course/template.py b/grading/judge-parameterizable-course/template.py new file mode 100644 index 00000000..723d9dc8 --- /dev/null +++ b/grading/judge-parameterizable-course/template.py @@ -0,0 +1,2 @@ +@@$signature@@: +@ @thecode@@