fix: diff with stdin

This commit is contained in:
李衍志523370910113 2024-11-15 18:54:53 +08:00
parent 303c9d8e40
commit b755efac6d
5 changed files with 60 additions and 874 deletions

View File

@ -10,9 +10,9 @@ class CmdFile(BaseModel):
name: Optional[str] = None name: Optional[str] = None
max: Optional[int] = 400 * 1024 * 1024 max: Optional[int] = 400 * 1024 * 1024
symlink: Optional[str] = None symlink: Optional[str] = None
stream_in: bool = Field(True, serialization_alias="streamIn") stream_in: Optional[bool] = Field(None, serialization_alias="streamIn")
stream_out: bool = Field(True, serialization_alias="streamOut") stream_out: Optional[bool] = Field(None, serialization_alias="streamOut")
pipe: bool = True pipe: Optional[bool] = None
class Cmd(BaseModel): class Cmd(BaseModel):

View File

@ -73,8 +73,8 @@ def get_healthcheck_cmd(repo_conf: repo.Config) -> result.Cmd:
def get_healthcheck_config(repo_conf: repo.Config) -> result.StageDetail: def get_healthcheck_config(repo_conf: repo.Config) -> result.StageDetail:
healthcheck_stage = result.StageDetail( healthcheck_stage = result.StageDetail(
name="healthcheck", name="healthcheck",
group="", group=None,
executor=ExecutorConfig( executor=result.Executor(
name="sandbox", name="sandbox",
with_=result.ExecutorWith(default=get_healthcheck_cmd(repo_conf), cases=[]), with_=result.ExecutorWith(default=get_healthcheck_cmd(repo_conf), cases=[]),
), ),

View File

@ -12,7 +12,7 @@ def get_conf_stage(
# TODO: we may have cq in future # TODO: we may have cq in future
group=( group=(
"joj" "joj"
if (task_stage.name is not None) and ("judge" in task_stage.name) if (task_stage.name is not None) and (("joj" in task_stage.name) or ("run" in task_stage.name))
else None else None
), ),
executor=result.Executor( executor=result.Executor(
@ -62,6 +62,9 @@ def get_executorWithConfig(
file: result.CmdFile(src=f"/home/tt/.config/joj/{file}") file: result.CmdFile(src=f"/home/tt/.config/joj/{file}")
for file in copy_in_files for file in copy_in_files
}, },
stdin=(
result.CmdFile(content="") if "diff" not in task_stage.parsers else None
),
copy_out=copy_out_files, copy_out=copy_out_files,
copy_in_cached={file: file for file in cached}, copy_in_cached={file: file for file in cached},
copy_out_cached=file_export if file_export is not None else [], copy_out_cached=file_export if file_export is not None else [],

View File

@ -1,7 +1,7 @@
{ {
"name": "hw 6 ex3", "name": "hw 6 ex1",
"logPath": "/home/tt/.cache/joj3/tests/homework/h6/e3.log", "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e1.log",
"expireUnixTimestamp": 1731686399, "expireUnixTimestamp": 1732031999,
"stage": { "stage": {
"sandboxExecServer": "172.17.0.1:5051", "sandboxExecServer": "172.17.0.1:5051",
"sandboxToken": "test", "sandboxToken": "test",
@ -9,7 +9,6 @@
"stages": [ "stages": [
{ {
"name": "healthcheck", "name": "healthcheck",
"group": "",
"executor": { "executor": {
"name": "sandbox", "name": "sandbox",
"with": { "with": {
@ -27,24 +26,15 @@
], ],
"stdin": { "stdin": {
"content": "", "content": "",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 4096, "max": 4096
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 4096, "max": 4096
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"cpuLimit": 4000000000000, "cpuLimit": 4000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -57,10 +47,7 @@
"copyIn": { "copyIn": {
"/tmp/repo-health-checker": { "/tmp/repo-health-checker": {
"src": "/usr/local/bin/repo-health-checker", "src": "/usr/local/bin/repo-health-checker",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
} }
}, },
"copyInCached": {}, "copyInCached": {},
@ -101,24 +88,15 @@
], ],
"stdin": { "stdin": {
"content": "", "content": "",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -131,10 +109,7 @@
"copyIn": { "copyIn": {
"tools/compile": { "tools/compile": {
"src": "/home/tt/.config/joj/tools/compile", "src": "/home/tt/.config/joj/tools/compile",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
} }
}, },
"copyInCached": {}, "copyInCached": {},
@ -144,10 +119,10 @@
"stderr" "stderr"
], ],
"copyOutCached": [ "copyOutCached": [
"h6/build/ex3", "h6/build/ex1",
"h6/build/ex3-asan", "h6/build/ex1-asan",
"h6/build/ex3-ubsan", "h6/build/ex1-ubsan",
"h6/build/ex3-msan", "h6/build/ex1-msan",
"h6/build/compile_commands.json" "h6/build/compile_commands.json"
], ],
"copyOutMax": 0, "copyOutMax": 0,
@ -210,24 +185,15 @@
], ],
"stdin": { "stdin": {
"content": "", "content": "",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -240,17 +206,14 @@
"copyIn": { "copyIn": {
"tools/filelength": { "tools/filelength": {
"src": "/home/tt/.config/joj/tools/filelength", "src": "/home/tt/.config/joj/tools/filelength",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
} }
}, },
"copyInCached": { "copyInCached": {
"h6/build/ex3": "h6/build/ex3", "h6/build/ex1": "h6/build/ex1",
"h6/build/ex3-asan": "h6/build/ex3-asan", "h6/build/ex1-asan": "h6/build/ex1-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan", "h6/build/ex1-ubsan": "h6/build/ex1-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan", "h6/build/ex1-msan": "h6/build/ex1-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json" "h6/build/compile_commands.json": "h6/build/compile_commands.json"
}, },
"copyInDir": ".", "copyInDir": ".",
@ -331,24 +294,15 @@
], ],
"stdin": { "stdin": {
"content": "", "content": "",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 65000000000000, "max": 65000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -361,17 +315,14 @@
"copyIn": { "copyIn": {
"projects/p2/.clang-tidy": { "projects/p2/.clang-tidy": {
"src": "/home/tt/.config/joj/projects/p2/.clang-tidy", "src": "/home/tt/.config/joj/projects/p2/.clang-tidy",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
} }
}, },
"copyInCached": { "copyInCached": {
"h6/build/ex3": "h6/build/ex3", "h6/build/ex1": "h6/build/ex1",
"h6/build/ex3-asan": "h6/build/ex3-asan", "h6/build/ex1-asan": "h6/build/ex1-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan", "h6/build/ex1-ubsan": "h6/build/ex1-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan", "h6/build/ex1-msan": "h6/build/ex1-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json" "h6/build/compile_commands.json": "h6/build/compile_commands.json"
}, },
"copyInDir": ".", "copyInDir": ".",
@ -479,24 +430,15 @@
], ],
"stdin": { "stdin": {
"content": "", "content": "",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 65000000000000, "max": 65000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -508,10 +450,10 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": {}, "copyIn": {},
"copyInCached": { "copyInCached": {
"h6/build/ex3": "h6/build/ex3", "h6/build/ex1": "h6/build/ex1",
"h6/build/ex3-asan": "h6/build/ex3-asan", "h6/build/ex1-asan": "h6/build/ex1-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan", "h6/build/ex1-ubsan": "h6/build/ex1-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan", "h6/build/ex1-msan": "h6/build/ex1-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json" "h6/build/compile_commands.json": "h6/build/compile_commands.json"
}, },
"copyInDir": ".", "copyInDir": ".",
@ -595,24 +537,15 @@
], ],
"stdin": { "stdin": {
"content": "", "content": "",
"max": 419430400, "max": 419430400
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 65000000000000, "max": 65000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"streamIn": true,
"streamOut": true,
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -624,10 +557,10 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": {}, "copyIn": {},
"copyInCached": { "copyInCached": {
"h6/build/ex3": "h6/build/ex3", "h6/build/ex1": "h6/build/ex1",
"h6/build/ex3-asan": "h6/build/ex3-asan", "h6/build/ex1-asan": "h6/build/ex1-asan",
"h6/build/ex3-ubsan": "h6/build/ex3-ubsan", "h6/build/ex1-ubsan": "h6/build/ex1-ubsan",
"h6/build/ex3-msan": "h6/build/ex3-msan", "h6/build/ex1-msan": "h6/build/ex1-msan",
"h6/build/compile_commands.json": "h6/build/compile_commands.json" "h6/build/compile_commands.json": "h6/build/compile_commands.json"
}, },
"copyInDir": ".", "copyInDir": ".",
@ -697,663 +630,11 @@
} }
} }
] ]
},
{
"name": "[run] address sanitizer",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"./h6/build/ex3-asan",
"-a"
],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"content": "",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stdout": {
"name": "stdout",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stderr": {
"name": "stderr",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 1000000000000000,
"realCpuLimit": 0,
"clockLimit": 2000000000000000,
"memoryLimit": 838860800,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"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": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": []
}
},
"parsers": [
{
"name": "result-status",
"with": {
"score": 1,
"comment": "",
"forceQuitOnNotAccepted": false
}
},
{
"name": "result-detail",
"with": {
"score": 0,
"comment": "",
"showFiles": [
"stderr"
],
"showExitStatus": true,
"showRuntime": true,
"showMemory": true
}
}
]
},
{
"name": "[run] memory sanitizer",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"./h6/build/ex3-msan",
"-a"
],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"content": "",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stdout": {
"name": "stdout",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stderr": {
"name": "stderr",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 1000000000000000,
"realCpuLimit": 0,
"clockLimit": 2000000000000000,
"memoryLimit": 838860800,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"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": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": []
}
},
"parsers": [
{
"name": "result-status",
"with": {
"score": 1,
"comment": "",
"forceQuitOnNotAccepted": false
}
},
{
"name": "result-detail",
"with": {
"score": 0,
"comment": "",
"showFiles": [
"stderr"
],
"showExitStatus": true,
"showRuntime": true,
"showMemory": true
}
}
]
},
{
"name": "[run] undefined behavior sanitizer",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"./h6/build/ex3-ubsan",
"-a"
],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"content": "",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stdout": {
"name": "stdout",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stderr": {
"name": "stderr",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 1000000000000000,
"realCpuLimit": 0,
"clockLimit": 2000000000000000,
"memoryLimit": 838860800,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"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": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": []
}
},
"parsers": [
{
"name": "result-status",
"with": {
"score": 1,
"comment": "",
"forceQuitOnNotAccepted": false
}
},
{
"name": "result-detail",
"with": {
"score": 0,
"comment": "",
"showFiles": [
"stderr"
],
"showExitStatus": true,
"showRuntime": true,
"showMemory": true
}
}
]
},
{
"name": "[joj] ex3",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"./h6/build/ex3"
],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"content": "",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stdout": {
"name": "stdout",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"stderr": {
"name": "stderr",
"max": 800000000000000,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 1000000000000000,
"realCpuLimit": 0,
"clockLimit": 2000000000000000,
"memoryLimit": 838860800,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {
"h6/build/ex3": "h6/build/ex3",
"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": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": [
{
"args": [
"Manuel",
"Charlemagne"
],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/paragraph.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case1.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case2.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case3.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case4.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case5.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case6.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case7.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case8.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
},
{
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"src": "/home/tt/.config/joj/tests/homework/h6/e3/case9.in",
"max": 419430400,
"streamIn": true,
"streamOut": true,
"pipe": true
},
"cpuLimit": 30000000000,
"clockLimit": 60000000000,
"memoryLimit": 33554432,
"procLimit": 50
}
]
}
},
"parsers": [
{
"name": "diff",
"with": {
"name": "diff",
"cases": [
{
"outputs": [
{
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case0.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case1.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case2.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 5,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case3.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 10,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case4.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 10,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case5.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case6.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case7.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case8.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
},
{
"outputs": [
{
"score": 15,
"fileName": "stdout",
"answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case9.out",
"forceQuitOnDiff": true,
"alwaysHide": false,
"compareSpace": false
}
]
}
]
}
},
{
"name": "dummy",
"with": {
"score": 0,
"comment": "",
"forceQuitOnNotAccepted": true
}
},
{
"name": "result-detail",
"with": {
"score": 0,
"comment": "",
"showFiles": [
"stderr"
],
"showExitStatus": true,
"showRuntime": true,
"showMemory": true
}
}
]
} }
] ]
}, },
"teapot": { "teapot": {
"logPath": "/home/tt/.cache/joj3/tests/homework/h6/e3-joint-teapot-debug.log", "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e1-joint-teapot-debug.log",
"scoreboardPath": "tests/homework-scoreboard.csv", "scoreboardPath": "tests/homework-scoreboard.csv",
"failedTablePath": "tests/homework-failed-table.md", "failedTablePath": "tests/homework-failed-table.md",
"gradingRepoName": "engr151-joj", "gradingRepoName": "engr151-joj",

View File

@ -1,15 +1,15 @@
# general task configuration # general task configuration
task.name = "hw 6 ex3" # task name task.name = "hw 6 ex1" # task name
task.type = "tests/homework/h6/e3" task.type = "tests/homework/h6/e1"
release.deadline = 2024-11-15 23:59:59+08:00 release.deadline = 2024-11-19 23:59:59+08:00
release.stages = [ "compile" ] release.stages = [ "compile" ]
[[stages]] [[stages]]
name = "Compilation" name = "Compilation"
command = "./tools/compile" # eg. script running cmake commands command = "./tools/compile" # eg. script running cmake commands
files.import = [ "tools/compile" ] files.import = [ "tools/compile"]
files.export = [ "h6/build/ex3", "h6/build/ex3-asan", "h6/build/ex3-ubsan", "h6/build/ex3-msan", "h6/build/compile_commands.json" ] files.export = [ "h6/build/ex1", "h6/build/ex1-asan", "h6/build/ex1-ubsan", "h6/build/ex1-msan", "h6/build/compile_commands.json" ]
# compile parsers # compile parsers
parsers = [ "result-detail", "dummy", "result-status" ] parsers = [ "result-detail", "dummy", "result-status" ]
@ -77,101 +77,3 @@ result-detail.stderr = true
result-detail.time = false result-detail.time = false
result-detail.mem = false result-detail.mem = false
[[stages]]
name = "[run] address sanitizer"
group = "run"
command="./h6/build/ex3-asan -a"
files.import = [ "h6/build/ex3-asan" ]
parsers = [ "result-status", "result-detail" ]
result-status.score = 1
result-status.forcequit = false
result-detail.exitstatus = true
result-detail.stderr = true
[[stages]]
name = "[run] memory sanitizer"
group = "run"
command="./h6/build/ex3-msan -a"
files.import = [ "h6/build/ex3-msan" ]
parsers = [ "result-status", "result-detail" ]
result-status.score = 1
result-status.forcequit = false
result-detail.exitstatus = true
result-detail.stderr = true
[[stages]]
name = "[run] undefined behavior sanitizer"
command="./h6/build/ex3-ubsan -a"
files.import = [ "h6/build/ex3-ubsan" ]
parsers = [ "result-status", "result-detail" ]
result-status.score = 1
result-status.forcequit = false
result-detail.exitstatus = true
result-detail.stderr = true
[[stages]]
name = "[joj] ex3"
group = "joj"
command="./h6/build/ex3"
files.import = [ "h6/build/ex3" ]
score = 10
parsers = [ "diff", "dummy", "result-detail" ]
result-detail.exitstatus = true
result-detail.stderr = true
# will be removed as long as the name is fixed
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
case1.diff.output.score = 5
case1.limit.cpu = 30
case1.limit.mem = 32
case1.limit.stdout = 8
case2.diff.output.score = 5
case2.limit.cpu = 30
case2.limit.mem = 32
case2.limit.stdout = 8
case3.diff.output.score = 5
case3.limit.cpu = 30
case3.limit.mem = 32
case3.limit.stdout = 8
case4.diff.output.score = 10
case4.limit.cpu = 30
case4.limit.mem = 32
case4.limit.stdout = 8
case5.diff.output.score = 10
case5.limit.cpu = 30
case5.limit.mem = 32
case5.limit.stdout = 8
case6.diff.output.score = 15
case6.limit.cpu = 30
case6.limit.mem = 32
case6.limit.stdout = 8
case7.diff.output.score = 15
case7.limit.cpu = 30
case7.limit.mem = 32
case7.limit.stdout = 8
case8.diff.output.score = 15
case8.limit.cpu = 30
case8.limit.mem = 32
case8.limit.stdout = 8
case9.diff.output.score = 15
case9.limit.cpu = 30
case9.limit.mem = 32
case9.limit.stdout = 8