Compare commits

..

No commits in common. "b587d2c63a972f6bcb5b1cff17d6fcafbb54109b" and "5601b46ffa9b5dc73ac5665a576afaf1cd143f80" have entirely different histories.

8 changed files with 239 additions and 565 deletions

View File

@ -1,50 +1,33 @@
from typing import Any, Dict, List, Optional, Union from typing import Any, Dict, List, Optional
import humanfriendly import humanfriendly
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from pytimeparse.timeparse import timeparse from pytimeparse.timeparse import timeparse
class LocalFile(BaseModel): class CmdFile(BaseModel):
src: str src: Optional[str] = None
content: Optional[str] = None
file_id: Optional[str] = Field(None, serialization_alias="fileId")
class MemoryFile(BaseModel): name: Optional[str] = None
content: str max: Optional[int] = humanfriendly.parse_size("128m")
symlink: Optional[str] = None
stream_in: Optional[bool] = Field(None, serialization_alias="streamIn")
class PreparedFile(BaseModel): stream_out: Optional[bool] = Field(None, serialization_alias="streamOut")
file_id: str = Field(..., alias="fileId") pipe: Optional[bool] = None
class Collector(BaseModel):
name: str
max: int
pipe: bool = True
class Symlink(BaseModel):
symlink: str
class StreamIn(BaseModel):
stream_in: bool = Field(..., alias="streamIn")
class StreamOut(BaseModel):
stream_out: bool = Field(..., alias="streamOut")
InputFile = Union[LocalFile | MemoryFile | PreparedFile | Symlink]
class Cmd(BaseModel): class Cmd(BaseModel):
args: Optional[List[str]] = None args: Optional[List[str]] = None
env: List[str] = [] env: Optional[List[str]] = ["PATH=/usr/bin:/bin:/usr/local/bin"]
stdin: Optional[Union[InputFile | StreamIn]] = None stdin: Optional[CmdFile] = CmdFile(content="")
stdout: Optional[Union[Collector | StreamOut]] = None stdout: Optional[CmdFile] = CmdFile(
stderr: Optional[Union[Collector | StreamOut]] = None name="stdout", max=humanfriendly.parse_size("128m")
cpu_limit: int = Field(0, serialization_alias="cpuLimit") )
stderr: Optional[CmdFile] = CmdFile(
name="stderr", max=humanfriendly.parse_size("128m")
)
cpu_limit: int = Field(timeparse("1s"), serialization_alias="cpuLimit")
real_cpu_limit: int = Field(0, serialization_alias="realCpuLimit") real_cpu_limit: int = Field(0, serialization_alias="realCpuLimit")
clock_limit: int = Field(2 * timeparse("1s"), serialization_alias="clockLimit") clock_limit: int = Field(2 * timeparse("1s"), serialization_alias="clockLimit")
memory_limit: int = Field( memory_limit: int = Field(
@ -54,7 +37,7 @@ class Cmd(BaseModel):
proc_limit: int = Field(50, serialization_alias="procLimit") proc_limit: int = Field(50, serialization_alias="procLimit")
cpu_rate_limit: int = Field(0, serialization_alias="cpuRateLimit") cpu_rate_limit: int = Field(0, serialization_alias="cpuRateLimit")
cpu_set_limit: str = Field("", serialization_alias="cpuSetLimit") cpu_set_limit: str = Field("", serialization_alias="cpuSetLimit")
copy_in: Dict[str, InputFile] = Field({}, serialization_alias="copyIn") copy_in: Dict[str, CmdFile] = Field({}, serialization_alias="copyIn")
copy_in_cached: Dict[str, str] = Field({}, serialization_alias="copyInCached") copy_in_cached: Dict[str, str] = Field({}, serialization_alias="copyInCached")
copy_in_dir: str = Field(".", serialization_alias="copyInDir") copy_in_dir: str = Field(".", serialization_alias="copyInDir")
# reconsider this default situation # reconsider this default situation
@ -69,12 +52,12 @@ class Cmd(BaseModel):
class OptionalCmd(BaseModel): class OptionalCmd(BaseModel):
args: Optional[List[str]] = None args: Optional[list[str]] = None
env: Optional[List[str]] = None env: Optional[list[str]] = ["PATH=/usr/bin:/bin:/usr/local/bin"]
stdin: Optional[Union[InputFile | StreamIn]] = None stdin: Optional[CmdFile] = None
stdout: Optional[Union[Collector | StreamOut]] = None stdout: Optional[CmdFile] = None
stderr: Optional[Union[Collector | StreamOut]] = None stderr: Optional[CmdFile] = None
cpu_limit: Optional[int] = Field(None, serialization_alias="cpuLimit") cpu_limit: Optional[int] = Field(timeparse("1s"), serialization_alias="cpuLimit")
real_cpu_limit: Optional[int] = Field(None, serialization_alias="realCpuLimit") real_cpu_limit: Optional[int] = Field(None, serialization_alias="realCpuLimit")
clock_limit: Optional[int] = Field( clock_limit: Optional[int] = Field(
2 * timeparse("1s"), serialization_alias="clockLimit" 2 * timeparse("1s"), serialization_alias="clockLimit"
@ -86,7 +69,7 @@ class OptionalCmd(BaseModel):
proc_limit: Optional[int] = Field(50, serialization_alias="procLimit") proc_limit: Optional[int] = Field(50, serialization_alias="procLimit")
cpu_rate_limit: Optional[int] = Field(None, serialization_alias="cpuRateLimit") cpu_rate_limit: Optional[int] = Field(None, serialization_alias="cpuRateLimit")
cpu_set_limit: Optional[str] = Field(None, serialization_alias="cpuSetLimit") cpu_set_limit: Optional[str] = Field(None, serialization_alias="cpuSetLimit")
copy_in: Optional[Dict[str, InputFile]] = Field(None, serialization_alias="copyIn") copy_in: Optional[Dict[str, CmdFile]] = Field(None, serialization_alias="copyIn")
copy_in_cached: Optional[Dict[str, str]] = Field( copy_in_cached: Optional[Dict[str, str]] = Field(
None, serialization_alias="copyInCached" None, serialization_alias="copyInCached"
) )

View File

@ -61,13 +61,13 @@ def get_executor_with_config(
else [] else []
), ),
copy_in={ copy_in={
file: result.LocalFile(src=f"/home/tt/.config/joj/{file}") file: result.CmdFile(src=f"/home/tt/.config/joj/{file}")
# all copyin files store in this tools folder # all copyin files store in this tools folder
# are there any corner cases # are there any corner cases
for file in copy_in_files for file in copy_in_files
}, },
stdin=( stdin=(
result.MemoryFile(content="") result.CmdFile(content="")
if ( if (
(task_stage.parsers is not None) (task_stage.parsers is not None)
and ("diff" not in task_stage.parsers) and ("diff" not in task_stage.parsers)
@ -92,7 +92,7 @@ def get_executor_with_config(
if task_stage.limit is not None and task_stage.limit.mem is not None if task_stage.limit is not None and task_stage.limit.mem is not None
else 800 * 1_024 * 1_024 else 800 * 1_024 * 1_024
), ),
stderr=result.Collector( stderr=result.CmdFile(
name="stderr", name="stderr",
max=( max=(
task_stage.limit.stderr * 1_000_000_000_000 task_stage.limit.stderr * 1_000_000_000_000
@ -100,9 +100,8 @@ def get_executor_with_config(
and task_stage.limit.stderr is not None and task_stage.limit.stderr is not None
else 800 * 1_024 * 1_024 else 800 * 1_024 * 1_024
), ),
pipe=True,
), ),
stdout=result.Collector( stdout=result.CmdFile(
name="stdout", name="stdout",
max=( max=(
task_stage.limit.stdout * 1_000_000_000_000 task_stage.limit.stdout * 1_000_000_000_000
@ -110,7 +109,6 @@ def get_executor_with_config(
and task_stage.limit.stdout is not None and task_stage.limit.stdout is not None
else 800 * 1_024 * 1_024 else 800 * 1_024 * 1_024
), ),
pipe=True,
), ),
), ),
cases=[], cases=[],
@ -277,7 +275,7 @@ def fix_diff(
stage_cases.append( stage_cases.append(
result.OptionalCmd( result.OptionalCmd(
stdin=result.LocalFile( stdin=result.CmdFile(
src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}", src=f"/home/tt/.config/joj/{task_conf.task.type_}/{stdin}",
), ),
args=(shlex.split(command) if command is not None else None), args=(shlex.split(command) if command is not None else None),

View File

@ -17,8 +17,22 @@
"name": "local", "name": "local",
"with": { "with": {
"default": { "default": {
"env": [], "env": [
"cpuLimit": 0, "PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,
@ -52,6 +66,10 @@
"-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e",
"-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml"
], ],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"cpuLimit": 1,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,
"procLimit": 50, "procLimit": 50,
@ -73,6 +91,7 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 1,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,
"procLimit": 50, "procLimit": 50,
@ -109,19 +128,20 @@
"args": [ "args": [
"./tools/compile" "./tools/compile"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -133,7 +153,8 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": { "copyIn": {
"tools/compile": { "tools/compile": {
"src": "/home/tt/.config/joj/tools/compile" "src": "/home/tt/.config/joj/tools/compile",
"max": 128000000
} }
}, },
"copyInCached": {}, "copyInCached": {},
@ -197,19 +218,20 @@
"*.cpp", "*.cpp",
"*.h" "*.h"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -221,7 +243,8 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": { "copyIn": {
"tools/filelength": { "tools/filelength": {
"src": "/home/tt/.config/joj/tools/filelength" "src": "/home/tt/.config/joj/tools/filelength",
"max": 128000000
} }
}, },
"copyInCached": { "copyInCached": {
@ -304,19 +327,20 @@
"h7/build", "h7/build",
"h7/ex2.cpp" "h7/ex2.cpp"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 65000000000000, "max": 65000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -328,7 +352,8 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": { "copyIn": {
"tests/homework/h7/.clang-tidy": { "tests/homework/h7/.clang-tidy": {
"src": "/home/tt/.config/joj/tests/homework/h7/.clang-tidy" "src": "/home/tt/.config/joj/tests/homework/h7/.clang-tidy",
"max": 128000000
} }
}, },
"copyInCached": { "copyInCached": {
@ -437,19 +462,20 @@
"--quiet", "--quiet",
"h7/ex2.cpp" "h7/ex2.cpp"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 65000000000000, "max": 65000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -542,19 +568,20 @@
"--exclude=build", "--exclude=build",
"h7/ex2.cpp" "h7/ex2.cpp"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 65000000000000, "max": 65000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -646,16 +673,16 @@
"./h7/build/ex2-asan", "./h7/build/ex2-asan",
"-a" "-a"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -688,8 +715,12 @@
}, },
"cases": [ "cases": [
{ {
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"src": "/home/tt/.config/joj/homework/h7/e2/case0.in" "src": "/home/tt/.config/joj/homework/h7/e2/case0.in",
"max": 128000000
}, },
"cpuLimit": 1000000000, "cpuLimit": 1000000000,
"clockLimit": 2000000000, "clockLimit": 2000000000,
@ -701,8 +732,12 @@
] ]
}, },
{ {
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"src": "/home/tt/.config/joj/homework/h7/e2/case1.in" "src": "/home/tt/.config/joj/homework/h7/e2/case1.in",
"max": 128000000
}, },
"cpuLimit": 1000000000, "cpuLimit": 1000000000,
"clockLimit": 2000000000, "clockLimit": 2000000000,
@ -785,7 +820,19 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 0, "stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,

View File

@ -10,92 +10,6 @@
"sandboxToken": "", "sandboxToken": "",
"outputPath": "/tmp/joj3_result.json", "outputPath": "/tmp/joj3_result.json",
"stages": [ "stages": [
{
"name": "healthcheck",
"group": "",
"executor": {
"name": "local",
"with": {
"default": {
"env": [],
"cpuLimit": 0,
"realCpuLimit": 0,
"clockLimit": 2,
"memoryLimit": 128000000,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {},
"copyInDir": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": [
{
"args": [
"/usr/local/bin/repo-health-checker",
"-root=.",
"-repoSize=10",
"-checkFileSumList=-checkFileNameList="
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
},
{
"args": [
"/usr/local/bin/joint-teapot",
"joj3-check-env",
"/home/tt/.config/teapot/teapot.env",
"--grading-repo-name",
"ece280-joj",
"--group-config",
"=100:24"
],
"env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
}
]
}
},
"parsers": [
{
"name": "healthcheck",
"with": {
"score": 1
}
},
{
"name": "debug",
"with": {
"score": 0
}
}
]
},
{ {
"name": "[cq] Clang-tidy", "name": "[cq] Clang-tidy",
"group": "cq", "group": "cq",
@ -112,19 +26,20 @@
"h7/build", "h7/build",
"h7/ex2.cpp" "h7/ex2.cpp"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 65000000000000, "max": 65000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -136,10 +51,12 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": { "copyIn": {
"tests/homework/h7/.clang-tidy": { "tests/homework/h7/.clang-tidy": {
"src": "/home/tt/.config/joj/tests/homework/h7/.clang-tidy" "src": "/home/tt/.config/joj/tests/homework/h7/.clang-tidy",
"max": 128000000
}, },
"h7/build/compile_commands.json": { "h7/build/compile_commands.json": {
"src": "/home/tt/.config/joj/h7/build/compile_commands.json" "src": "/home/tt/.config/joj/h7/build/compile_commands.json",
"max": 128000000
} }
}, },
"copyInCached": {}, "copyInCached": {},
@ -247,7 +164,19 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 0, "stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,

View File

@ -10,92 +10,6 @@
"sandboxToken": "", "sandboxToken": "",
"outputPath": "/tmp/joj3_result.json", "outputPath": "/tmp/joj3_result.json",
"stages": [ "stages": [
{
"name": "healthcheck",
"group": "",
"executor": {
"name": "local",
"with": {
"default": {
"env": [],
"cpuLimit": 0,
"realCpuLimit": 0,
"clockLimit": 2,
"memoryLimit": 128000000,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {},
"copyInDir": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": [
{
"args": [
"/usr/local/bin/repo-health-checker",
"-root=.",
"-repoSize=10",
"-checkFileSumList=-checkFileNameList="
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
},
{
"args": [
"/usr/local/bin/joint-teapot",
"joj3-check-env",
"/home/tt/.config/teapot/teapot.env",
"--grading-repo-name",
"ece280-joj",
"--group-config",
"=100:24"
],
"env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
}
]
}
},
"parsers": [
{
"name": "healthcheck",
"with": {
"score": 1
}
},
{
"name": "debug",
"with": {
"score": 0
}
}
]
},
{ {
"name": "[cq] Cppcheck", "name": "[cq] Cppcheck",
"group": "cq", "group": "cq",
@ -112,19 +26,20 @@
"--quiet", "--quiet",
"h7/ex2.cpp" "h7/ex2.cpp"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 65000000000000, "max": 65000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -217,7 +132,19 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 0, "stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,

View File

@ -10,92 +10,6 @@
"sandboxToken": "", "sandboxToken": "",
"outputPath": "/tmp/joj3_result.json", "outputPath": "/tmp/joj3_result.json",
"stages": [ "stages": [
{
"name": "healthcheck",
"group": "",
"executor": {
"name": "local",
"with": {
"default": {
"env": [],
"cpuLimit": 0,
"realCpuLimit": 0,
"clockLimit": 2,
"memoryLimit": 128000000,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {},
"copyInDir": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": [
{
"args": [
"/usr/local/bin/repo-health-checker",
"-root=.",
"-repoSize=10",
"-checkFileSumList=-checkFileNameList="
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
},
{
"args": [
"/usr/local/bin/joint-teapot",
"joj3-check-env",
"/home/tt/.config/teapot/teapot.env",
"--grading-repo-name",
"ece280-joj",
"--group-config",
"=100:24"
],
"env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
}
]
}
},
"parsers": [
{
"name": "healthcheck",
"with": {
"score": 1
}
},
{
"name": "debug",
"with": {
"score": 0
}
}
]
},
{ {
"name": "[cq] Cpplint", "name": "[cq] Cpplint",
"group": "cq", "group": "cq",
@ -111,19 +25,20 @@
"--exclude=build", "--exclude=build",
"h7/ex2.cpp" "h7/ex2.cpp"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 65000000000000, "max": 65000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -219,7 +134,19 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 0, "stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,

View File

@ -10,92 +10,6 @@
"sandboxToken": "", "sandboxToken": "",
"outputPath": "/tmp/joj3_result.json", "outputPath": "/tmp/joj3_result.json",
"stages": [ "stages": [
{
"name": "healthcheck",
"group": "",
"executor": {
"name": "local",
"with": {
"default": {
"env": [],
"cpuLimit": 0,
"realCpuLimit": 0,
"clockLimit": 2,
"memoryLimit": 128000000,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {},
"copyInDir": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": [
{
"args": [
"/usr/local/bin/repo-health-checker",
"-root=.",
"-repoSize=10",
"-checkFileSumList=-checkFileNameList="
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
},
{
"args": [
"/usr/local/bin/joint-teapot",
"joj3-check-env",
"/home/tt/.config/teapot/teapot.env",
"--grading-repo-name",
"ece280-joj",
"--group-config",
"=100:24"
],
"env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
}
]
}
},
"parsers": [
{
"name": "healthcheck",
"with": {
"score": 1
}
},
{
"name": "debug",
"with": {
"score": 0
}
}
]
},
{ {
"name": "[joj] ex2-asan", "name": "[joj] ex2-asan",
"group": "joj", "group": "joj",
@ -107,16 +21,16 @@
"./h7/build/ex2-asan", "./h7/build/ex2-asan",
"-a" "-a"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -128,7 +42,8 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": { "copyIn": {
"h7/build/ex2-asan": { "h7/build/ex2-asan": {
"src": "/home/tt/.config/joj/h7/build/ex2-asan" "src": "/home/tt/.config/joj/h7/build/ex2-asan",
"max": 128000000
} }
}, },
"copyInCached": {}, "copyInCached": {},
@ -147,8 +62,12 @@
}, },
"cases": [ "cases": [
{ {
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"src": "/home/tt/.config/joj/homework/h7/e2/case0.in" "src": "/home/tt/.config/joj/homework/h7/e2/case0.in",
"max": 128000000
}, },
"cpuLimit": 1000000000, "cpuLimit": 1000000000,
"clockLimit": 2000000000, "clockLimit": 2000000000,
@ -160,8 +79,12 @@
] ]
}, },
{ {
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"src": "/home/tt/.config/joj/homework/h7/e2/case1.in" "src": "/home/tt/.config/joj/homework/h7/e2/case1.in",
"max": 128000000
}, },
"cpuLimit": 1000000000, "cpuLimit": 1000000000,
"clockLimit": 2000000000, "clockLimit": 2000000000,
@ -244,7 +167,19 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 0, "stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,

View File

@ -10,92 +10,6 @@
"sandboxToken": "", "sandboxToken": "",
"outputPath": "/tmp/joj3_result.json", "outputPath": "/tmp/joj3_result.json",
"stages": [ "stages": [
{
"name": "healthcheck",
"group": "",
"executor": {
"name": "local",
"with": {
"default": {
"env": [],
"cpuLimit": 0,
"realCpuLimit": 0,
"clockLimit": 2,
"memoryLimit": 128000000,
"stackLimit": 0,
"procLimit": 50,
"cpuRateLimit": 0,
"cpuSetLimit": "",
"copyIn": {},
"copyInCached": {},
"copyInDir": ".",
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [],
"copyOutMax": 0,
"copyOutDir": "",
"tty": false,
"strictMemoryLimit": false,
"dataSegmentLimit": false,
"addressSpaceLimit": false
},
"cases": [
{
"args": [
"/usr/local/bin/repo-health-checker",
"-root=.",
"-repoSize=10",
"-checkFileSumList=-checkFileNameList="
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
},
{
"args": [
"/usr/local/bin/joint-teapot",
"joj3-check-env",
"/home/tt/.config/teapot/teapot.env",
"--grading-repo-name",
"ece280-joj",
"--group-config",
"=100:24"
],
"env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
],
"clockLimit": 2,
"memoryLimit": 128000000,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
]
}
]
}
},
"parsers": [
{
"name": "healthcheck",
"with": {
"score": 1
}
},
{
"name": "debug",
"with": {
"score": 0
}
}
]
},
{ {
"name": "[cq] Filelength", "name": "[cq] Filelength",
"group": "cq", "group": "cq",
@ -110,19 +24,20 @@
"*.cpp", "*.cpp",
"*.h" "*.h"
], ],
"env": [], "env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"stdin": { "stdin": {
"content": "" "content": "",
"max": 128000000
}, },
"stdout": { "stdout": {
"name": "stdout", "name": "stdout",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"stderr": { "stderr": {
"name": "stderr", "name": "stderr",
"max": 800000000000000, "max": 800000000000000
"pipe": true
}, },
"cpuLimit": 1000000000000000, "cpuLimit": 1000000000000000,
"realCpuLimit": 0, "realCpuLimit": 0,
@ -134,7 +49,8 @@
"cpuSetLimit": "", "cpuSetLimit": "",
"copyIn": { "copyIn": {
"tools/filelength": { "tools/filelength": {
"src": "/home/tt/.config/joj/tools/filelength" "src": "/home/tt/.config/joj/tools/filelength",
"max": 128000000
} }
}, },
"copyInCached": {}, "copyInCached": {},
@ -216,7 +132,19 @@
"env": [ "env": [
"LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log"
], ],
"cpuLimit": 0, "stdin": {
"content": "",
"max": 128000000
},
"stdout": {
"name": "stdout",
"max": 128000000
},
"stderr": {
"name": "stderr",
"max": 128000000
},
"cpuLimit": 1,
"realCpuLimit": 0, "realCpuLimit": 0,
"clockLimit": 2, "clockLimit": 2,
"memoryLimit": 128000000, "memoryLimit": 128000000,