feat: use conf.json

This commit is contained in:
张泊明518370910136 2024-09-19 17:07:29 -04:00
parent ce71d96228
commit 7f6f6e881d
GPG Key ID: CA088E6D9284F870
2 changed files with 291 additions and 178 deletions

291
conf.json Normal file
View File

@ -0,0 +1,291 @@
{
"stages": [
{
"name": "compile",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"g++",
"a.cc",
"-o",
"a"
],
"env": [
"PATH=/usr/bin:/bin"
],
"cpuLimit": 10000000000,
"memoryLimit": 104857600,
"procLimit": 50,
"copyInCwd": true,
"copyOut": [
"stdout",
"stderr"
],
"copyOutCached": [
"a"
],
"stdin": {
"content": ""
},
"stdout": {
"name": "stdout",
"max": 4096
},
"stderr": {
"name": "stderr",
"max": 4096
}
}
}
},
"parser": {
"name": "result-status",
"with": {
"score": 0,
"comment": "compile done"
}
}
},
{
"name": "run",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"./a"
],
"env": [
"PATH=/usr/bin:/bin"
],
"cpuLimit": 1000000000,
"memoryLimit": 104857600,
"procLimit": 50,
"copyOut": [
"stdout",
"stderr"
],
"stdout": {
"name": "stdout",
"max": 4096
},
"stderr": {
"name": "stderr",
"max": 4096
},
"copyInCached": {
"a": "a"
}
},
"cases": [
{
"stdin": {
"src": "./cases/empty.in"
}
},
{
"stdin": {
"src": "./cases/empty.in"
}
},
{
"stdin": {
"src": "./cases/empty.in"
}
},
{
"stdin": {
"src": "./cases/one-line.in"
}
},
{
"stdin": {
"src": "./cases/one-line.in"
}
},
{
"stdin": {
"src": "./cases/one-line.in"
}
},
{
"stdin": {
"src": "./cases/one-line.in"
}
},
{
"stdin": {
"src": "./cases/one-line.in"
}
},
{
"stdin": {
"src": "./cases/multi-line.in"
}
},
{
"stdin": {
"src": "./cases/multi-line.in"
}
},
{
"stdin": {
"src": "./cases/multi-line.in"
}
},
{
"stdin": {
"src": "./cases/multi-line.in"
}
},
{
"stdin": {
"src": "./cases/multi-line.in"
}
},
{
"stdin": {
"src": "./cases/multi-line.in"
}
}
]
}
},
"parser": {
"name": "diff",
"with": {
"cases": [
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/empty.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/one-line.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err1.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/empty.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/one-line.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err1.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err2.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err3.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/empty.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/one-line.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-correct.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err1.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err2.out"
}
]
},
{
"outputs": [
{
"score": 100,
"fileName": "stdout",
"answerPath": "./cases/multi-line-err3.out"
}
]
}
]
}
}
}
]
}

178
conf.toml
View File

@ -1,178 +0,0 @@
skipGitea = true
[[stages]]
name = "compile"
[stages.executor]
name = "sandbox"
[stages.executor.with.default]
args = ["g++", "a.cc", "-o", "a"]
env = ["PATH=/usr/bin:/bin"]
cpuLimit = 10_000_000_000
memoryLimit = 104_857_600
procLimit = 50
copyInCwd = true
copyOut = ["stdout", "stderr"]
copyOutCached = ["a"]
[stages.executor.with.default.stdin]
content = ""
[stages.executor.with.default.stdout]
name = "stdout"
max = 4_096
[stages.executor.with.default.stderr]
name = "stderr"
max = 4_096
[stages.parser]
name = "result-status"
[stages.parser.with]
score = 0
comment = "compile done"
[[stages]]
name = "run"
[stages.executor]
name = "sandbox"
[stages.executor.with.default]
args = ["./a"]
env = ["PATH=/usr/bin:/bin"]
cpuLimit = 1_000_000_000
memoryLimit = 104_857_600
procLimit = 50
copyOut = ["stdout", "stderr"]
[stages.executor.with.default.stdout]
name = "stdout"
max = 4_096
[stages.executor.with.default.stderr]
name = "stderr"
max = 4_096
[stages.executor.with.default.copyInCached]
a = "a"
# empty
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/empty.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/empty.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/empty.in"
# one-line
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/one-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/one-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/one-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/one-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/one-line.in"
# one-line
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/multi-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/multi-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/multi-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/multi-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/multi-line.in"
[[stages.executor.with.cases]]
[stages.executor.with.cases.stdin]
src = "./cases/multi-line.in"
[stages.parser]
name = "diff"
# empty
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/empty.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/one-line.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err1.out"
# one-line
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/empty.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/one-line.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err1.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err2.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err3.out"
# multi-line
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/empty.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/one-line.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-correct.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err1.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err2.out"
[[stages.parser.with.cases]]
[[stages.parser.with.cases.outputs]]
score = 100
fileName = "stdout"
answerPath = "./cases/multi-line-err3.out"