WIP: dev #6

Closed
李衍志523370910113 wants to merge 131 commits from dev into master
4 changed files with 80 additions and 61 deletions
Showing only changes of commit 303c9d8e40 - Show all commits

View File

@ -50,6 +50,8 @@ class Stage(BaseModel):
name: Optional[str] = None # Stage name
command: Optional[str] = None # Command to run
files: Optional[Files] = None
in_: Optional[str] = Field(None, alias="in")
out_: Optional[str] = Field(None, alias="out")
score: Optional[int] = 0
parsers: Optional[list[str]] = [] # list of parsers
limit: Optional[Limit] = Limit()

View File

@ -234,12 +234,28 @@ def fix_diff(
if case_stage.limit and case_stage.limit.mem is not None
else 0
)
command = (
case_stage.command
if case_stage.command is not None
else None
)
stdin = (
case_stage.in_
if case_stage.in_ is not None
else f"{case}.in"
)
stdout = (
case_stage.out_
if case_stage.out_ is not None
else f"{case}.out"
)
stage_cases.append(
result.OptionalCmd(
stdin=result.CmdFile(
src=f"/home/tt/.config/joj/{task_conf.task.type_}/{case}.in"
src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}"
),
args=shlex.split(case_stage.command) if command is not None else None,
cpu_limit=cpu_limit,
clock_limit=clock_limit,
memory_limit=memory_limit,
@ -260,7 +276,7 @@ def fix_diff(
{
"score": diff_output.score,
"fileName": "stdout",
"answerPath": f"/home/tt/.config/joj/{task_conf.task.type_}/{case}.out",
"answerPath": f"/home/tt/.config/joj/{task_conf.task.type_}/{stdout}",
"forceQuitOnDiff": diff_output.forcequit,
"alwaysHide": diff_output.hide,
"compareSpace": not diff_output.ignorespaces,

View File

@ -145,9 +145,9 @@
],
"copyOutCached": [
"h6/build/ex3",
"h6/build/asan",
"h6/build/ubsan",
"h6/build/msan",
"h6/build/ex3-asan",
"h6/build/ex3-ubsan",
"h6/build/ex3-msan",
"h6/build/compile_commands.json"
],
"copyOutMax": 0,
@ -248,9 +248,9 @@
},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -369,9 +369,9 @@
},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -509,9 +509,9 @@
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -625,9 +625,9 @@
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -705,7 +705,7 @@
"with": {
"default": {
"args": [
"./h6/build/asan",
"./h6/build/ex3-asan",
"-a"
],
"env": [
@ -743,9 +743,9 @@
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -795,7 +795,7 @@
"with": {
"default": {
"args": [
"./h6/build/msan",
"./h6/build/ex3-msan",
"-a"
],
"env": [
@ -833,9 +833,9 @@
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -885,7 +885,7 @@
"with": {
"default": {
"args": [
"./h6/build/ubsan",
"./h6/build/ex3-ubsan",
"-a"
],
"env": [
@ -923,9 +923,9 @@
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -1012,9 +1012,9 @@
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"h6/build/asan": "h6/build/asan",
"h6/build/ubsan": "h6/build/ubsan",
"h6/build/msan": "h6/build/msan",
"h6/build/ex3-asan": "h6/build/ex3-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json"
},
"copyInDir": ".",
@ -1040,7 +1040,7 @@
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case0.in",
"src": "/home/tt/.config/joj/tests/homework/h6/e3/paragraph.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
@ -1207,7 +1207,7 @@
{
"outputs": [
{
"score": 0,
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case0.out",
"forceQuitOnDiff": true,
@ -1219,7 +1219,7 @@
{
"outputs": [
{
"score": 0,
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case1.out",
"forceQuitOnDiff": true,
@ -1231,7 +1231,7 @@
{

is the empty "gradingRepoName" in teapot dict expected?

is the empty "gradingRepoName" in teapot dict expected?
"outputs": [
{
"score": 0,
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case2.out",
"forceQuitOnDiff": true,
@ -1243,7 +1243,7 @@
{
"outputs": [
{
"score": 0,
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case3.out",
"forceQuitOnDiff": true,
@ -1255,7 +1255,7 @@
{
"outputs": [
{
"score": 0,
"score": 10,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case4.out",
"forceQuitOnDiff": true,
@ -1267,7 +1267,7 @@
{
"outputs": [
{
"score": 0,
"score": 10,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case5.out",
"forceQuitOnDiff": true,
@ -1279,7 +1279,7 @@
{
"outputs": [
{
"score": 0,
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case6.out",
"forceQuitOnDiff": true,
@ -1291,7 +1291,7 @@
{
"outputs": [
{
"score": 0,
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case7.out",
"forceQuitOnDiff": true,
@ -1303,7 +1303,7 @@
{
"outputs": [
{
"score": 0,
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case8.out",
"forceQuitOnDiff": true,
@ -1315,7 +1315,7 @@
{
"outputs": [
{
"score": 0,
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case9.out",
"forceQuitOnDiff": true,

View File

@ -9,7 +9,7 @@ release.stages = [ "compile" ]
name = "Compilation"
command = "./tools/compile" # eg. script running cmake commands
files.import = [ "tools/compile" ]
files.export = [ "h6/build/ex3", "h6/build/asan", "h6/build/ubsan", "h6/build/msan", "h6/build/compile_commands.json" ]
files.export = [ "h6/build/ex3", "h6/build/ex3-asan", "h6/build/ex3-ubsan", "h6/build/ex3-msan", "h6/build/compile_commands.json" ]
# compile parsers
parsers = [ "result-detail", "dummy", "result-status" ]
@ -80,8 +80,8 @@ result-detail.mem = false
[[stages]]
name = "[run] address sanitizer"
group = "run"
command="./h6/build/asan -a"
files.import = [ "h6/build/asan" ]
command="./h6/build/ex3-asan -a"
files.import = [ "h6/build/ex3-asan" ]
parsers = [ "result-status", "result-detail" ]
result-status.score = 1
@ -92,8 +92,8 @@ result-detail.stderr = true
[[stages]]
name = "[run] memory sanitizer"
group = "run"
command="./h6/build/msan -a"
files.import = [ "h6/build/msan" ]
command="./h6/build/ex3-msan -a"
files.import = [ "h6/build/ex3-msan" ]
parsers = [ "result-status", "result-detail" ]
result-status.score = 1
@ -103,8 +103,8 @@ result-detail.stderr = true
[[stages]]
name = "[run] undefined behavior sanitizer"
command="./h6/build/ubsan -a"
files.import = [ "h6/build/ubsan" ]
command="./h6/build/ex3-ubsan -a"
files.import = [ "h6/build/ex3-ubsan" ]
parsers = [ "result-status", "result-detail" ]
result-status.score = 1
@ -124,53 +124,54 @@ result-detail.exitstatus = true
result-detail.stderr = true
# will be removed as long as the name is fixed
case0.score = 10
case0.in = "paragraph.in"
case0.command = "Manuel Charlemagne"
case0.diff.output.score = 5
case0.limit.cpu = 30
case0.limit.mem = 32
case0.limit.stdout = 8
case0.command = "Manuel Charlemagne"
case1.score = 10
case1.diff.output.score = 5
case1.limit.cpu = 30
case1.limit.mem = 32
case1.limit.stdout = 8
case2.score = 10
case2.diff.output.score = 5
case2.limit.cpu = 30
case2.limit.mem = 32
case2.limit.stdout = 8
case3.score = 10
case3.diff.output.score = 5
case3.limit.cpu = 30
case3.limit.mem = 32
case3.limit.stdout = 8
case4.score = 10
case4.diff.output.score = 10
case4.limit.cpu = 30
case4.limit.mem = 32
case4.limit.stdout = 8
case5.score = 10
case5.diff.output.score = 10
case5.limit.cpu = 30
case5.limit.mem = 32
case5.limit.stdout = 8
case6.score = 10
case6.diff.output.score = 15
case6.limit.cpu = 30
case6.limit.mem = 32
case6.limit.stdout = 8
case7.score = 10
case7.diff.output.score = 15
case7.limit.cpu = 30
case7.limit.mem = 32
case7.limit.stdout = 8
case8.score = 10
case8.diff.output.score = 15
case8.limit.cpu = 30
case8.limit.mem = 32
case8.limit.stdout = 8
case9.score = 10
case9.diff.output.score = 15
case9.limit.cpu = 30
case9.limit.mem = 32
case9.limit.stdout = 8