From 80e2bf6bad445cd6b7c0bc03d37e7bbbe8e7cc7d Mon Sep 17 00:00:00 2001 From: jon-lee Date: Mon, 24 Feb 2025 22:29:23 +0800 Subject: [PATCH] feat: small testcases for parsers --- tests/convert/basic/task.json | 16 +- tests/convert/clang-tidy/task.json | 872 ++++++++++++++++++++++++++++ tests/convert/clang-tidy/task.toml | 102 ++++ tests/convert/cppcheck/task.json | 872 ++++++++++++++++++++++++++++ tests/convert/cppcheck/task.toml | 102 ++++ tests/convert/cpplint/task.json | 872 ++++++++++++++++++++++++++++ tests/convert/cpplint/task.toml | 102 ++++ tests/convert/diff/task.json | 872 ++++++++++++++++++++++++++++ tests/convert/diff/task.toml | 102 ++++ tests/convert/keyword/task.json | 872 ++++++++++++++++++++++++++++ tests/convert/keyword/task.toml | 102 ++++ tests/convert/test_convert_cases.py | 20 + 12 files changed, 4898 insertions(+), 8 deletions(-) create mode 100644 tests/convert/clang-tidy/task.json create mode 100644 tests/convert/clang-tidy/task.toml create mode 100644 tests/convert/cppcheck/task.json create mode 100644 tests/convert/cppcheck/task.toml create mode 100644 tests/convert/cpplint/task.json create mode 100644 tests/convert/cpplint/task.toml create mode 100644 tests/convert/diff/task.json create mode 100644 tests/convert/diff/task.toml create mode 100644 tests/convert/keyword/task.json create mode 100644 tests/convert/keyword/task.toml diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json index 6e643a5..2fb6ac3 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -63,7 +63,7 @@ "-repoSize=50.5", "-meta=README.md", "-meta=Changelog.md", - "-checkFileSumList=a7bda693bf603a20b0ecf1bcdae62c7268596313e7efffcbc8a6fe393e3397b6,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,5906153391235cc9ed094402f2c5e42d98cf3073b0a8a1f3a4af354bdfc0c9a1,064c4ed06789f31bab546f36e2d40be547b92a6e1f647f7002fdea3a2b76ad98", + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" ], "env": [ @@ -153,7 +153,7 @@ "cpuSetLimit": "", "copyIn": { "tools/compile": { - "src": "/home/tt/.config/joj/tools/tools/compile", + "src": "/home/tt/./tools/tools/compile", "max": 419430400 } }, @@ -243,7 +243,7 @@ "cpuSetLimit": "", "copyIn": { "tools/filelength": { - "src": "/home/tt/.config/joj/tools/tools/filelength", + "src": "/home/tt/./tools/tools/filelength", "max": 419430400 } }, @@ -352,7 +352,7 @@ "cpuSetLimit": "", "copyIn": { "tests/homework/h7/.clang-tidy": { - "src": "/home/tt/.config/joj/tools/tests/homework/h7/.clang-tidy", + "src": "/home/tt/./tools/tests/homework/h7/.clang-tidy", "max": 419430400 } }, @@ -719,7 +719,7 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": "/home/tt/.config/joj/homework/h7/e2/case0.in", + "src": "/home/tt/./homework/h7/e2/case0.in", "max": 419430400 }, "cpuLimit": 1000000000, @@ -736,7 +736,7 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": "/home/tt/.config/joj/homework/h7/e2/case1.in", + "src": "/home/tt/./homework/h7/e2/case1.in", "max": 419430400 }, "cpuLimit": 1000000000, @@ -762,7 +762,7 @@ { "score": 5, "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/homework/h7/e2/case0.out", + "answerPath": "/home/tt/./homework/h7/e2/case0.out", "forceQuitOnDiff": false, "alwaysHide": false, "compareSpace": false @@ -774,7 +774,7 @@ { "score": 5, "fileName": "stdout", - "answerPath": "/home/tt/.config/joj/homework/h7/e2/case1.out", + "answerPath": "/home/tt/./homework/h7/e2/case1.out", "forceQuitOnDiff": false, "alwaysHide": false, "compareSpace": false diff --git a/tests/convert/clang-tidy/task.json b/tests/convert/clang-tidy/task.json new file mode 100644 index 0000000..2fb6ac3 --- /dev/null +++ b/tests/convert/clang-tidy/task.json @@ -0,0 +1,872 @@ +{ + "name": "hw7 ex2", + "logPath": "/home/tt/.cache/joj3/homework/h7/e2.log", + "expireUnixTimestamp": 1735574399, + "effectiveUnixTimestamp": -1, + "actorCsvPath": "/home/tt/.config/joj/students.csv", + "maxTotalScore": 100, + "stage": { + "sandboxExecServer": "172.17.0.1:5051", + "sandboxToken": "test", + "outputPath": "/tmp/joj3_result.json", + "stages": [ + { + "name": "healthcheck", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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=50.5", + "-meta=README.md", + "-meta=Changelog.md", + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", + "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-check-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--group-config", + "joj=1000:24,run=1000:24,=100:24" + ], + "env": [ + "LOG_FILE_PATH=/home/nuvole0217/.cache/joint-teapot-debug.log" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "healthcheck", + "with": { + "score": 1 + } + }, + { + "name": "debug", + "with": { + "score": 0 + } + } + ] + }, + { + "name": "Compilation", + "group": "", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/compile" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/compile": { + "src": "/home/tt/./tools/tools/compile", + "max": 419430400 + } + }, + "copyInCached": {}, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [ + "h7/build/ex2", + "h7/build/ex2-asan", + "h7/build/ex2-ubsan", + "h7/build/ex2-msan", + "h7/build/compile_commands.json" + ], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + }, + { + "name": "result-status", + "with": { + "score": 0, + "comment": "Congratulations! Your code compiled successfully.", + "forceQuitOnNotAccepted": true + } + } + ] + }, + { + "name": "[cq] Filelength", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/filelength", + "400", + "300", + "*.cpp", + "*.h" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/filelength": { + "src": "/home/tt/./tools/tools/filelength", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "keyword", + "with": { + "matches": [ + { + "keywords": [ + "recommended" + ], + "score": 10 + }, + { + "keywords": [ + "max" + ], + "score": 20 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Clang-tidy", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "run-clang-tidy-18", + "-header-filter=.*", + "-quiet", + "-load=/usr/local/lib/libcodequality.so", + "-p", + "h7/build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tests/homework/h7/.clang-tidy": { + "src": "/home/tt/./tools/tests/homework/h7/.clang-tidy", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "clangtidy", + "with": { + "matches": [ + { + "keywords": [ + "readability-function-size" + ], + "score": 10 + }, + { + "keywords": [ + "codequality-no-global-variables", + "codequality-no-header-guard", + "codequality-no-fflush-stdin" + ], + "score": 20 + }, + { + "keywords": [ + "codequality-unchecked-malloc-result", + "readability-duplicate-include", + "readability-identifier-naming", + "readability-redundant", + "readability-misplaced-array-index", + "cppcoreguidelines-init-variables", + "bugprone-suspicious-string-compare", + "google-global-names-in-headers", + "clang-diagnostic", + "clang-analyzer", + "misc", + "performance", + "portability" + ], + "score": 5 + }, + { + "keywords": [ + "readability-misleading-indentation" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cppcheck", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cppcheck", + "--template={\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}", + "--force", + "--enable=all", + "--suppress=missingIncludeSystem", + "--quiet", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 65000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cppcheck", + "with": { + "matches": [ + { + "keywords": [ + "warning", + "portability", + "performance", + "style" + ], + "score": 5 + }, + { + "keywords": [ + "error" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cpplint", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cpplint", + "--linelength=120", + "--filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use", + "--recursive", + "--exclude=build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cpplint", + "with": { + "matches": [ + { + "keywords": [ + "build" + ], + "score": 10 + }, + { + "keywords": [ + "readability" + ], + "score": 20 + }, + { + "keywords": [ + "runtime" + ], + "score": 5 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[joj] ex2-asan", + "group": "joj", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./h7/build/ex2-asan", + "-a" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 95656304705536, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [ + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case0.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case1.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "diff", + "with": { + "name": "diff", + "cases": [ + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case0.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case1.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + } + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": true, + "showMemory": true + } + } + ] + } + ], + "poststages": [ + { + "name": "teapot", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-all-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--max-total-score", + "100" + ], + "env": [ + "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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": [] + } + }, + "parsers": [ + { + "name": "log", + "with": { + "msg": "joj3 summary" + } + } + ] + } + ] + } +} diff --git a/tests/convert/clang-tidy/task.toml b/tests/convert/clang-tidy/task.toml new file mode 100644 index 0000000..2dc7f07 --- /dev/null +++ b/tests/convert/clang-tidy/task.toml @@ -0,0 +1,102 @@ +# general task configuration +task.name = "hw7 ex2" # task name +task.type = "homework/h7/e2" # remove this task type later + +release.deadline = 2024-12-30 23:59:59+08:00 +release.begin_time = 2024-12-29 23:59:59+08:00 + +[[stages]] +name = "Compilation" +command = "./tools/compile" # eg. script running cmake commands +files.import = [ "tools/compile" ] +files.export = [ "h7/build/ex2", "h7/build/ex2-asan", "h7/build/ex2-ubsan", "h7/build/ex2-msan", "h7/build/compile_commands.json" ] +score = 1 + +# compile parsers +parsers = [ "result-detail", "result-status" ] +result-status.comment = "Congratulations! Your code compiled successfully." +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false +result-status.forcequit = true + +[[stages]] +name = "[cq] Filelength" +command = "./tools/filelength 400 300 *.cpp *.h" +files.import = [ "tools/filelength" ] + +parsers = [ "keyword", "result-detail" ] +keyword.keyword = [ "max", "recommended"] +keyword.weight = [ 20, 10 ] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Clang-tidy" +command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p h7/build h7/ex2.cpp" +files.import = [ "tests/homework/h7/.clang-tidy", "h7/build/compile_commands.json" ] +limit.stdout = 65 + +parsers = [ "clangtidy", "result-detail" ] +clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ] +clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cppcheck" +command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem --quiet h7/ex2.cpp" +limit.stderr = 65 + +parsers = [ "cppcheck", "result-detail" ] +cppcheck.keyword = ["error", "warning", "portability", "performance", "style"] +cppcheck.weight = [15, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cpplint" +command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use --recursive --exclude=build h7/ex2.cpp" +limit.stdout = 65 + +parsers = [ "cpplint", "result-detail" ] +cpplint.keyword = [ "runtime", "readability", "build" ] +cpplint.weight = [ 5, 20, 10] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[joj] ex2-asan" +command="./h7/build/ex2-asan -a" +files.import = [ "h7/build/ex2-asan" ] +limit.mem = 91224961 + +parsers = [ "diff", "result-detail" ] +result-detail.exitstatus = true +result-detail.stderr = true + +# will be removed as long as the name is fixed +case0.diff.output.score = 5 +case0.limit.cpu = 1 +case0.limit.mem = 91224961 +case0.diff.output.ignorespaces = true +#case0.limit.stdout = 8 +#case0.command = "./h7/build/ex2" +case0.in = "case0.in" + +case1.diff.output.score = 5 +case1.limit.cpu = 1 +case1.limit.mem = 91224961 +case1.diff.output.ignorespaces = true +#case1.limit.stdout = 8 +#case1.command = "./h7/build/ex2" +case1.in = "case1.in" diff --git a/tests/convert/cppcheck/task.json b/tests/convert/cppcheck/task.json new file mode 100644 index 0000000..2fb6ac3 --- /dev/null +++ b/tests/convert/cppcheck/task.json @@ -0,0 +1,872 @@ +{ + "name": "hw7 ex2", + "logPath": "/home/tt/.cache/joj3/homework/h7/e2.log", + "expireUnixTimestamp": 1735574399, + "effectiveUnixTimestamp": -1, + "actorCsvPath": "/home/tt/.config/joj/students.csv", + "maxTotalScore": 100, + "stage": { + "sandboxExecServer": "172.17.0.1:5051", + "sandboxToken": "test", + "outputPath": "/tmp/joj3_result.json", + "stages": [ + { + "name": "healthcheck", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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=50.5", + "-meta=README.md", + "-meta=Changelog.md", + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", + "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-check-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--group-config", + "joj=1000:24,run=1000:24,=100:24" + ], + "env": [ + "LOG_FILE_PATH=/home/nuvole0217/.cache/joint-teapot-debug.log" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "healthcheck", + "with": { + "score": 1 + } + }, + { + "name": "debug", + "with": { + "score": 0 + } + } + ] + }, + { + "name": "Compilation", + "group": "", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/compile" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/compile": { + "src": "/home/tt/./tools/tools/compile", + "max": 419430400 + } + }, + "copyInCached": {}, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [ + "h7/build/ex2", + "h7/build/ex2-asan", + "h7/build/ex2-ubsan", + "h7/build/ex2-msan", + "h7/build/compile_commands.json" + ], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + }, + { + "name": "result-status", + "with": { + "score": 0, + "comment": "Congratulations! Your code compiled successfully.", + "forceQuitOnNotAccepted": true + } + } + ] + }, + { + "name": "[cq] Filelength", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/filelength", + "400", + "300", + "*.cpp", + "*.h" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/filelength": { + "src": "/home/tt/./tools/tools/filelength", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "keyword", + "with": { + "matches": [ + { + "keywords": [ + "recommended" + ], + "score": 10 + }, + { + "keywords": [ + "max" + ], + "score": 20 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Clang-tidy", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "run-clang-tidy-18", + "-header-filter=.*", + "-quiet", + "-load=/usr/local/lib/libcodequality.so", + "-p", + "h7/build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tests/homework/h7/.clang-tidy": { + "src": "/home/tt/./tools/tests/homework/h7/.clang-tidy", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "clangtidy", + "with": { + "matches": [ + { + "keywords": [ + "readability-function-size" + ], + "score": 10 + }, + { + "keywords": [ + "codequality-no-global-variables", + "codequality-no-header-guard", + "codequality-no-fflush-stdin" + ], + "score": 20 + }, + { + "keywords": [ + "codequality-unchecked-malloc-result", + "readability-duplicate-include", + "readability-identifier-naming", + "readability-redundant", + "readability-misplaced-array-index", + "cppcoreguidelines-init-variables", + "bugprone-suspicious-string-compare", + "google-global-names-in-headers", + "clang-diagnostic", + "clang-analyzer", + "misc", + "performance", + "portability" + ], + "score": 5 + }, + { + "keywords": [ + "readability-misleading-indentation" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cppcheck", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cppcheck", + "--template={\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}", + "--force", + "--enable=all", + "--suppress=missingIncludeSystem", + "--quiet", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 65000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cppcheck", + "with": { + "matches": [ + { + "keywords": [ + "warning", + "portability", + "performance", + "style" + ], + "score": 5 + }, + { + "keywords": [ + "error" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cpplint", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cpplint", + "--linelength=120", + "--filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use", + "--recursive", + "--exclude=build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cpplint", + "with": { + "matches": [ + { + "keywords": [ + "build" + ], + "score": 10 + }, + { + "keywords": [ + "readability" + ], + "score": 20 + }, + { + "keywords": [ + "runtime" + ], + "score": 5 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[joj] ex2-asan", + "group": "joj", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./h7/build/ex2-asan", + "-a" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 95656304705536, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [ + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case0.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case1.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "diff", + "with": { + "name": "diff", + "cases": [ + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case0.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case1.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + } + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": true, + "showMemory": true + } + } + ] + } + ], + "poststages": [ + { + "name": "teapot", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-all-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--max-total-score", + "100" + ], + "env": [ + "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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": [] + } + }, + "parsers": [ + { + "name": "log", + "with": { + "msg": "joj3 summary" + } + } + ] + } + ] + } +} diff --git a/tests/convert/cppcheck/task.toml b/tests/convert/cppcheck/task.toml new file mode 100644 index 0000000..2dc7f07 --- /dev/null +++ b/tests/convert/cppcheck/task.toml @@ -0,0 +1,102 @@ +# general task configuration +task.name = "hw7 ex2" # task name +task.type = "homework/h7/e2" # remove this task type later + +release.deadline = 2024-12-30 23:59:59+08:00 +release.begin_time = 2024-12-29 23:59:59+08:00 + +[[stages]] +name = "Compilation" +command = "./tools/compile" # eg. script running cmake commands +files.import = [ "tools/compile" ] +files.export = [ "h7/build/ex2", "h7/build/ex2-asan", "h7/build/ex2-ubsan", "h7/build/ex2-msan", "h7/build/compile_commands.json" ] +score = 1 + +# compile parsers +parsers = [ "result-detail", "result-status" ] +result-status.comment = "Congratulations! Your code compiled successfully." +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false +result-status.forcequit = true + +[[stages]] +name = "[cq] Filelength" +command = "./tools/filelength 400 300 *.cpp *.h" +files.import = [ "tools/filelength" ] + +parsers = [ "keyword", "result-detail" ] +keyword.keyword = [ "max", "recommended"] +keyword.weight = [ 20, 10 ] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Clang-tidy" +command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p h7/build h7/ex2.cpp" +files.import = [ "tests/homework/h7/.clang-tidy", "h7/build/compile_commands.json" ] +limit.stdout = 65 + +parsers = [ "clangtidy", "result-detail" ] +clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ] +clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cppcheck" +command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem --quiet h7/ex2.cpp" +limit.stderr = 65 + +parsers = [ "cppcheck", "result-detail" ] +cppcheck.keyword = ["error", "warning", "portability", "performance", "style"] +cppcheck.weight = [15, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cpplint" +command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use --recursive --exclude=build h7/ex2.cpp" +limit.stdout = 65 + +parsers = [ "cpplint", "result-detail" ] +cpplint.keyword = [ "runtime", "readability", "build" ] +cpplint.weight = [ 5, 20, 10] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[joj] ex2-asan" +command="./h7/build/ex2-asan -a" +files.import = [ "h7/build/ex2-asan" ] +limit.mem = 91224961 + +parsers = [ "diff", "result-detail" ] +result-detail.exitstatus = true +result-detail.stderr = true + +# will be removed as long as the name is fixed +case0.diff.output.score = 5 +case0.limit.cpu = 1 +case0.limit.mem = 91224961 +case0.diff.output.ignorespaces = true +#case0.limit.stdout = 8 +#case0.command = "./h7/build/ex2" +case0.in = "case0.in" + +case1.diff.output.score = 5 +case1.limit.cpu = 1 +case1.limit.mem = 91224961 +case1.diff.output.ignorespaces = true +#case1.limit.stdout = 8 +#case1.command = "./h7/build/ex2" +case1.in = "case1.in" diff --git a/tests/convert/cpplint/task.json b/tests/convert/cpplint/task.json new file mode 100644 index 0000000..2fb6ac3 --- /dev/null +++ b/tests/convert/cpplint/task.json @@ -0,0 +1,872 @@ +{ + "name": "hw7 ex2", + "logPath": "/home/tt/.cache/joj3/homework/h7/e2.log", + "expireUnixTimestamp": 1735574399, + "effectiveUnixTimestamp": -1, + "actorCsvPath": "/home/tt/.config/joj/students.csv", + "maxTotalScore": 100, + "stage": { + "sandboxExecServer": "172.17.0.1:5051", + "sandboxToken": "test", + "outputPath": "/tmp/joj3_result.json", + "stages": [ + { + "name": "healthcheck", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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=50.5", + "-meta=README.md", + "-meta=Changelog.md", + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", + "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-check-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--group-config", + "joj=1000:24,run=1000:24,=100:24" + ], + "env": [ + "LOG_FILE_PATH=/home/nuvole0217/.cache/joint-teapot-debug.log" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "healthcheck", + "with": { + "score": 1 + } + }, + { + "name": "debug", + "with": { + "score": 0 + } + } + ] + }, + { + "name": "Compilation", + "group": "", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/compile" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/compile": { + "src": "/home/tt/./tools/tools/compile", + "max": 419430400 + } + }, + "copyInCached": {}, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [ + "h7/build/ex2", + "h7/build/ex2-asan", + "h7/build/ex2-ubsan", + "h7/build/ex2-msan", + "h7/build/compile_commands.json" + ], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + }, + { + "name": "result-status", + "with": { + "score": 0, + "comment": "Congratulations! Your code compiled successfully.", + "forceQuitOnNotAccepted": true + } + } + ] + }, + { + "name": "[cq] Filelength", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/filelength", + "400", + "300", + "*.cpp", + "*.h" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/filelength": { + "src": "/home/tt/./tools/tools/filelength", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "keyword", + "with": { + "matches": [ + { + "keywords": [ + "recommended" + ], + "score": 10 + }, + { + "keywords": [ + "max" + ], + "score": 20 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Clang-tidy", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "run-clang-tidy-18", + "-header-filter=.*", + "-quiet", + "-load=/usr/local/lib/libcodequality.so", + "-p", + "h7/build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tests/homework/h7/.clang-tidy": { + "src": "/home/tt/./tools/tests/homework/h7/.clang-tidy", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "clangtidy", + "with": { + "matches": [ + { + "keywords": [ + "readability-function-size" + ], + "score": 10 + }, + { + "keywords": [ + "codequality-no-global-variables", + "codequality-no-header-guard", + "codequality-no-fflush-stdin" + ], + "score": 20 + }, + { + "keywords": [ + "codequality-unchecked-malloc-result", + "readability-duplicate-include", + "readability-identifier-naming", + "readability-redundant", + "readability-misplaced-array-index", + "cppcoreguidelines-init-variables", + "bugprone-suspicious-string-compare", + "google-global-names-in-headers", + "clang-diagnostic", + "clang-analyzer", + "misc", + "performance", + "portability" + ], + "score": 5 + }, + { + "keywords": [ + "readability-misleading-indentation" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cppcheck", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cppcheck", + "--template={\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}", + "--force", + "--enable=all", + "--suppress=missingIncludeSystem", + "--quiet", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 65000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cppcheck", + "with": { + "matches": [ + { + "keywords": [ + "warning", + "portability", + "performance", + "style" + ], + "score": 5 + }, + { + "keywords": [ + "error" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cpplint", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cpplint", + "--linelength=120", + "--filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use", + "--recursive", + "--exclude=build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cpplint", + "with": { + "matches": [ + { + "keywords": [ + "build" + ], + "score": 10 + }, + { + "keywords": [ + "readability" + ], + "score": 20 + }, + { + "keywords": [ + "runtime" + ], + "score": 5 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[joj] ex2-asan", + "group": "joj", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./h7/build/ex2-asan", + "-a" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 95656304705536, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [ + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case0.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case1.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "diff", + "with": { + "name": "diff", + "cases": [ + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case0.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case1.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + } + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": true, + "showMemory": true + } + } + ] + } + ], + "poststages": [ + { + "name": "teapot", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-all-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--max-total-score", + "100" + ], + "env": [ + "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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": [] + } + }, + "parsers": [ + { + "name": "log", + "with": { + "msg": "joj3 summary" + } + } + ] + } + ] + } +} diff --git a/tests/convert/cpplint/task.toml b/tests/convert/cpplint/task.toml new file mode 100644 index 0000000..2dc7f07 --- /dev/null +++ b/tests/convert/cpplint/task.toml @@ -0,0 +1,102 @@ +# general task configuration +task.name = "hw7 ex2" # task name +task.type = "homework/h7/e2" # remove this task type later + +release.deadline = 2024-12-30 23:59:59+08:00 +release.begin_time = 2024-12-29 23:59:59+08:00 + +[[stages]] +name = "Compilation" +command = "./tools/compile" # eg. script running cmake commands +files.import = [ "tools/compile" ] +files.export = [ "h7/build/ex2", "h7/build/ex2-asan", "h7/build/ex2-ubsan", "h7/build/ex2-msan", "h7/build/compile_commands.json" ] +score = 1 + +# compile parsers +parsers = [ "result-detail", "result-status" ] +result-status.comment = "Congratulations! Your code compiled successfully." +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false +result-status.forcequit = true + +[[stages]] +name = "[cq] Filelength" +command = "./tools/filelength 400 300 *.cpp *.h" +files.import = [ "tools/filelength" ] + +parsers = [ "keyword", "result-detail" ] +keyword.keyword = [ "max", "recommended"] +keyword.weight = [ 20, 10 ] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Clang-tidy" +command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p h7/build h7/ex2.cpp" +files.import = [ "tests/homework/h7/.clang-tidy", "h7/build/compile_commands.json" ] +limit.stdout = 65 + +parsers = [ "clangtidy", "result-detail" ] +clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ] +clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cppcheck" +command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem --quiet h7/ex2.cpp" +limit.stderr = 65 + +parsers = [ "cppcheck", "result-detail" ] +cppcheck.keyword = ["error", "warning", "portability", "performance", "style"] +cppcheck.weight = [15, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cpplint" +command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use --recursive --exclude=build h7/ex2.cpp" +limit.stdout = 65 + +parsers = [ "cpplint", "result-detail" ] +cpplint.keyword = [ "runtime", "readability", "build" ] +cpplint.weight = [ 5, 20, 10] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[joj] ex2-asan" +command="./h7/build/ex2-asan -a" +files.import = [ "h7/build/ex2-asan" ] +limit.mem = 91224961 + +parsers = [ "diff", "result-detail" ] +result-detail.exitstatus = true +result-detail.stderr = true + +# will be removed as long as the name is fixed +case0.diff.output.score = 5 +case0.limit.cpu = 1 +case0.limit.mem = 91224961 +case0.diff.output.ignorespaces = true +#case0.limit.stdout = 8 +#case0.command = "./h7/build/ex2" +case0.in = "case0.in" + +case1.diff.output.score = 5 +case1.limit.cpu = 1 +case1.limit.mem = 91224961 +case1.diff.output.ignorespaces = true +#case1.limit.stdout = 8 +#case1.command = "./h7/build/ex2" +case1.in = "case1.in" diff --git a/tests/convert/diff/task.json b/tests/convert/diff/task.json new file mode 100644 index 0000000..2fb6ac3 --- /dev/null +++ b/tests/convert/diff/task.json @@ -0,0 +1,872 @@ +{ + "name": "hw7 ex2", + "logPath": "/home/tt/.cache/joj3/homework/h7/e2.log", + "expireUnixTimestamp": 1735574399, + "effectiveUnixTimestamp": -1, + "actorCsvPath": "/home/tt/.config/joj/students.csv", + "maxTotalScore": 100, + "stage": { + "sandboxExecServer": "172.17.0.1:5051", + "sandboxToken": "test", + "outputPath": "/tmp/joj3_result.json", + "stages": [ + { + "name": "healthcheck", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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=50.5", + "-meta=README.md", + "-meta=Changelog.md", + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", + "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-check-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--group-config", + "joj=1000:24,run=1000:24,=100:24" + ], + "env": [ + "LOG_FILE_PATH=/home/nuvole0217/.cache/joint-teapot-debug.log" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "healthcheck", + "with": { + "score": 1 + } + }, + { + "name": "debug", + "with": { + "score": 0 + } + } + ] + }, + { + "name": "Compilation", + "group": "", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/compile" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/compile": { + "src": "/home/tt/./tools/tools/compile", + "max": 419430400 + } + }, + "copyInCached": {}, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [ + "h7/build/ex2", + "h7/build/ex2-asan", + "h7/build/ex2-ubsan", + "h7/build/ex2-msan", + "h7/build/compile_commands.json" + ], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + }, + { + "name": "result-status", + "with": { + "score": 0, + "comment": "Congratulations! Your code compiled successfully.", + "forceQuitOnNotAccepted": true + } + } + ] + }, + { + "name": "[cq] Filelength", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/filelength", + "400", + "300", + "*.cpp", + "*.h" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/filelength": { + "src": "/home/tt/./tools/tools/filelength", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "keyword", + "with": { + "matches": [ + { + "keywords": [ + "recommended" + ], + "score": 10 + }, + { + "keywords": [ + "max" + ], + "score": 20 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Clang-tidy", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "run-clang-tidy-18", + "-header-filter=.*", + "-quiet", + "-load=/usr/local/lib/libcodequality.so", + "-p", + "h7/build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tests/homework/h7/.clang-tidy": { + "src": "/home/tt/./tools/tests/homework/h7/.clang-tidy", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "clangtidy", + "with": { + "matches": [ + { + "keywords": [ + "readability-function-size" + ], + "score": 10 + }, + { + "keywords": [ + "codequality-no-global-variables", + "codequality-no-header-guard", + "codequality-no-fflush-stdin" + ], + "score": 20 + }, + { + "keywords": [ + "codequality-unchecked-malloc-result", + "readability-duplicate-include", + "readability-identifier-naming", + "readability-redundant", + "readability-misplaced-array-index", + "cppcoreguidelines-init-variables", + "bugprone-suspicious-string-compare", + "google-global-names-in-headers", + "clang-diagnostic", + "clang-analyzer", + "misc", + "performance", + "portability" + ], + "score": 5 + }, + { + "keywords": [ + "readability-misleading-indentation" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cppcheck", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cppcheck", + "--template={\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}", + "--force", + "--enable=all", + "--suppress=missingIncludeSystem", + "--quiet", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 65000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cppcheck", + "with": { + "matches": [ + { + "keywords": [ + "warning", + "portability", + "performance", + "style" + ], + "score": 5 + }, + { + "keywords": [ + "error" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cpplint", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cpplint", + "--linelength=120", + "--filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use", + "--recursive", + "--exclude=build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cpplint", + "with": { + "matches": [ + { + "keywords": [ + "build" + ], + "score": 10 + }, + { + "keywords": [ + "readability" + ], + "score": 20 + }, + { + "keywords": [ + "runtime" + ], + "score": 5 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[joj] ex2-asan", + "group": "joj", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./h7/build/ex2-asan", + "-a" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 95656304705536, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [ + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case0.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case1.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "diff", + "with": { + "name": "diff", + "cases": [ + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case0.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case1.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + } + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": true, + "showMemory": true + } + } + ] + } + ], + "poststages": [ + { + "name": "teapot", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-all-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--max-total-score", + "100" + ], + "env": [ + "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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": [] + } + }, + "parsers": [ + { + "name": "log", + "with": { + "msg": "joj3 summary" + } + } + ] + } + ] + } +} diff --git a/tests/convert/diff/task.toml b/tests/convert/diff/task.toml new file mode 100644 index 0000000..2dc7f07 --- /dev/null +++ b/tests/convert/diff/task.toml @@ -0,0 +1,102 @@ +# general task configuration +task.name = "hw7 ex2" # task name +task.type = "homework/h7/e2" # remove this task type later + +release.deadline = 2024-12-30 23:59:59+08:00 +release.begin_time = 2024-12-29 23:59:59+08:00 + +[[stages]] +name = "Compilation" +command = "./tools/compile" # eg. script running cmake commands +files.import = [ "tools/compile" ] +files.export = [ "h7/build/ex2", "h7/build/ex2-asan", "h7/build/ex2-ubsan", "h7/build/ex2-msan", "h7/build/compile_commands.json" ] +score = 1 + +# compile parsers +parsers = [ "result-detail", "result-status" ] +result-status.comment = "Congratulations! Your code compiled successfully." +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false +result-status.forcequit = true + +[[stages]] +name = "[cq] Filelength" +command = "./tools/filelength 400 300 *.cpp *.h" +files.import = [ "tools/filelength" ] + +parsers = [ "keyword", "result-detail" ] +keyword.keyword = [ "max", "recommended"] +keyword.weight = [ 20, 10 ] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Clang-tidy" +command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p h7/build h7/ex2.cpp" +files.import = [ "tests/homework/h7/.clang-tidy", "h7/build/compile_commands.json" ] +limit.stdout = 65 + +parsers = [ "clangtidy", "result-detail" ] +clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ] +clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cppcheck" +command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem --quiet h7/ex2.cpp" +limit.stderr = 65 + +parsers = [ "cppcheck", "result-detail" ] +cppcheck.keyword = ["error", "warning", "portability", "performance", "style"] +cppcheck.weight = [15, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cpplint" +command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use --recursive --exclude=build h7/ex2.cpp" +limit.stdout = 65 + +parsers = [ "cpplint", "result-detail" ] +cpplint.keyword = [ "runtime", "readability", "build" ] +cpplint.weight = [ 5, 20, 10] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[joj] ex2-asan" +command="./h7/build/ex2-asan -a" +files.import = [ "h7/build/ex2-asan" ] +limit.mem = 91224961 + +parsers = [ "diff", "result-detail" ] +result-detail.exitstatus = true +result-detail.stderr = true + +# will be removed as long as the name is fixed +case0.diff.output.score = 5 +case0.limit.cpu = 1 +case0.limit.mem = 91224961 +case0.diff.output.ignorespaces = true +#case0.limit.stdout = 8 +#case0.command = "./h7/build/ex2" +case0.in = "case0.in" + +case1.diff.output.score = 5 +case1.limit.cpu = 1 +case1.limit.mem = 91224961 +case1.diff.output.ignorespaces = true +#case1.limit.stdout = 8 +#case1.command = "./h7/build/ex2" +case1.in = "case1.in" diff --git a/tests/convert/keyword/task.json b/tests/convert/keyword/task.json new file mode 100644 index 0000000..2fb6ac3 --- /dev/null +++ b/tests/convert/keyword/task.json @@ -0,0 +1,872 @@ +{ + "name": "hw7 ex2", + "logPath": "/home/tt/.cache/joj3/homework/h7/e2.log", + "expireUnixTimestamp": 1735574399, + "effectiveUnixTimestamp": -1, + "actorCsvPath": "/home/tt/.config/joj/students.csv", + "maxTotalScore": 100, + "stage": { + "sandboxExecServer": "172.17.0.1:5051", + "sandboxToken": "test", + "outputPath": "/tmp/joj3_result.json", + "stages": [ + { + "name": "healthcheck", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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=50.5", + "-meta=README.md", + "-meta=Changelog.md", + "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,f6740081487ca34963a005209e2e9adfdf6f3561719af082d40fe80145e0cceb,bbeca1491c2f8364821a328a6677c0c5d59ccd60250abac3cec0887eeb9bde3e", + "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-check-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--group-config", + "joj=1000:24,run=1000:24,=100:24" + ], + "env": [ + "LOG_FILE_PATH=/home/nuvole0217/.cache/joint-teapot-debug.log" + ], + "cpuLimit": 4000000000000, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "healthcheck", + "with": { + "score": 1 + } + }, + { + "name": "debug", + "with": { + "score": 0 + } + } + ] + }, + { + "name": "Compilation", + "group": "", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/compile" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/compile": { + "src": "/home/tt/./tools/tools/compile", + "max": 419430400 + } + }, + "copyInCached": {}, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [ + "h7/build/ex2", + "h7/build/ex2-asan", + "h7/build/ex2-ubsan", + "h7/build/ex2-msan", + "h7/build/compile_commands.json" + ], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + }, + { + "name": "result-status", + "with": { + "score": 0, + "comment": "Congratulations! Your code compiled successfully.", + "forceQuitOnNotAccepted": true + } + } + ] + }, + { + "name": "[cq] Filelength", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./tools/filelength", + "400", + "300", + "*.cpp", + "*.h" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tools/filelength": { + "src": "/home/tt/./tools/tools/filelength", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "keyword", + "with": { + "matches": [ + { + "keywords": [ + "recommended" + ], + "score": 10 + }, + { + "keywords": [ + "max" + ], + "score": 20 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Clang-tidy", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "run-clang-tidy-18", + "-header-filter=.*", + "-quiet", + "-load=/usr/local/lib/libcodequality.so", + "-p", + "h7/build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": { + "tests/homework/h7/.clang-tidy": { + "src": "/home/tt/./tools/tests/homework/h7/.clang-tidy", + "max": 419430400 + } + }, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "clangtidy", + "with": { + "matches": [ + { + "keywords": [ + "readability-function-size" + ], + "score": 10 + }, + { + "keywords": [ + "codequality-no-global-variables", + "codequality-no-header-guard", + "codequality-no-fflush-stdin" + ], + "score": 20 + }, + { + "keywords": [ + "codequality-unchecked-malloc-result", + "readability-duplicate-include", + "readability-identifier-naming", + "readability-redundant", + "readability-misplaced-array-index", + "cppcoreguidelines-init-variables", + "bugprone-suspicious-string-compare", + "google-global-names-in-headers", + "clang-diagnostic", + "clang-analyzer", + "misc", + "performance", + "portability" + ], + "score": 5 + }, + { + "keywords": [ + "readability-misleading-indentation" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stdout" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cppcheck", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cppcheck", + "--template={\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}", + "--force", + "--enable=all", + "--suppress=missingIncludeSystem", + "--quiet", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 65000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cppcheck", + "with": { + "matches": [ + { + "keywords": [ + "warning", + "portability", + "performance", + "style" + ], + "score": 5 + }, + { + "keywords": [ + "error" + ], + "score": 15 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[cq] Cpplint", + "group": "cq", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "cpplint", + "--linelength=120", + "--filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use", + "--recursive", + "--exclude=build", + "h7/ex2.cpp" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 65000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 838860800, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [] + } + }, + "parsers": [ + { + "name": "cpplint", + "with": { + "matches": [ + { + "keywords": [ + "build" + ], + "score": 10 + }, + { + "keywords": [ + "readability" + ], + "score": 20 + }, + { + "keywords": [ + "runtime" + ], + "score": 5 + } + ], + "fullscore": 0, + "minscore": -1000, + "files": [ + "stdout", + "stderr" + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": false, + "showMemory": false + } + } + ] + }, + { + "name": "[joj] ex2-asan", + "group": "joj", + "executor": { + "name": "sandbox", + "with": { + "default": { + "args": [ + "./h7/build/ex2-asan", + "-a" + ], + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdout": { + "name": "stdout", + "max": 800000000000000 + }, + "stderr": { + "name": "stderr", + "max": 800000000000000 + }, + "cpuLimit": 1000000000000000, + "realCpuLimit": 0, + "clockLimit": 2000000000000000, + "memoryLimit": 95656304705536, + "stackLimit": 0, + "procLimit": 50, + "cpuRateLimit": 0, + "cpuSetLimit": "", + "copyIn": {}, + "copyInCached": { + "h7/build/ex2": "h7/build/ex2", + "h7/build/ex2-asan": "h7/build/ex2-asan", + "h7/build/ex2-ubsan": "h7/build/ex2-ubsan", + "h7/build/ex2-msan": "h7/build/ex2-msan", + "h7/build/compile_commands.json": "h7/build/compile_commands.json" + }, + "copyInDir": ".", + "copyOut": [ + "stdout", + "stderr" + ], + "copyOutCached": [], + "copyOutMax": 0, + "copyOutDir": "", + "tty": false, + "strictMemoryLimit": false, + "dataSegmentLimit": false, + "addressSpaceLimit": false + }, + "cases": [ + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case0.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + }, + { + "env": [ + "PATH=/usr/bin:/bin:/usr/local/bin" + ], + "stdin": { + "src": "/home/tt/./homework/h7/e2/case1.in", + "max": 419430400 + }, + "cpuLimit": 1000000000, + "clockLimit": 2000000000, + "memoryLimit": 95656304705536, + "procLimit": 50, + "copyOut": [ + "stdout", + "stderr" + ] + } + ] + } + }, + "parsers": [ + { + "name": "diff", + "with": { + "name": "diff", + "cases": [ + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case0.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + }, + { + "outputs": [ + { + "score": 5, + "fileName": "stdout", + "answerPath": "/home/tt/./homework/h7/e2/case1.out", + "forceQuitOnDiff": false, + "alwaysHide": false, + "compareSpace": false + } + ] + } + ] + } + }, + { + "name": "result-detail", + "with": { + "score": 0, + "comment": "", + "showFiles": [ + "stderr" + ], + "showExitStatus": true, + "showRuntime": true, + "showMemory": true + } + } + ] + } + ], + "poststages": [ + { + "name": "teapot", + "group": "", + "executor": { + "name": "local", + "with": { + "default": { + "args": [ + "/usr/local/bin/joint-teapot", + "joj3-all-env", + "/home/tt/.config/teapot/teapot.env", + "--grading-repo-name", + "Nuvole-joj", + "--max-total-score", + "100" + ], + "env": [ + "LOG_FILE_PATH=/home/tt/.cache/joint-teapot-debug.log" + ], + "stdin": { + "content": "", + "max": 419430400 + }, + "stdout": { + "name": "stdout", + "max": 4096 + }, + "stderr": { + "name": "stderr", + "max": 4096 + }, + "cpuLimit": 4000000000000, + "realCpuLimit": 0, + "clockLimit": 8000000000000, + "memoryLimit": 838860800, + "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": [] + } + }, + "parsers": [ + { + "name": "log", + "with": { + "msg": "joj3 summary" + } + } + ] + } + ] + } +} diff --git a/tests/convert/keyword/task.toml b/tests/convert/keyword/task.toml new file mode 100644 index 0000000..2dc7f07 --- /dev/null +++ b/tests/convert/keyword/task.toml @@ -0,0 +1,102 @@ +# general task configuration +task.name = "hw7 ex2" # task name +task.type = "homework/h7/e2" # remove this task type later + +release.deadline = 2024-12-30 23:59:59+08:00 +release.begin_time = 2024-12-29 23:59:59+08:00 + +[[stages]] +name = "Compilation" +command = "./tools/compile" # eg. script running cmake commands +files.import = [ "tools/compile" ] +files.export = [ "h7/build/ex2", "h7/build/ex2-asan", "h7/build/ex2-ubsan", "h7/build/ex2-msan", "h7/build/compile_commands.json" ] +score = 1 + +# compile parsers +parsers = [ "result-detail", "result-status" ] +result-status.comment = "Congratulations! Your code compiled successfully." +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false +result-status.forcequit = true + +[[stages]] +name = "[cq] Filelength" +command = "./tools/filelength 400 300 *.cpp *.h" +files.import = [ "tools/filelength" ] + +parsers = [ "keyword", "result-detail" ] +keyword.keyword = [ "max", "recommended"] +keyword.weight = [ 20, 10 ] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Clang-tidy" +command = "run-clang-tidy-18 -header-filter=.* -quiet -load=/usr/local/lib/libcodequality.so -p h7/build h7/ex2.cpp" +files.import = [ "tests/homework/h7/.clang-tidy", "h7/build/compile_commands.json" ] +limit.stdout = 65 + +parsers = [ "clangtidy", "result-detail" ] +clangtidy.keyword = [ "codequality-unchecked-malloc-result", "codequality-no-global-variables", "codequality-no-header-guard", "codequality-no-fflush-stdin", "readability-function-size", "readability-duplicate-include", "readability-identifier-naming", "readability-redundant", "readability-misleading-indentation", "readability-misplaced-array-index", "cppcoreguidelines-init-variables", "bugprone-suspicious-string-compare", "google-global-names-in-headers", "clang-diagnostic", "clang-analyzer", "misc", "performance", "portability" ] +clangtidy.weight = [ 5, 20, 20, 20, 10, 5, 5, 5, 15, 5, 5, 5, 5, 5, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stdout = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cppcheck" +command = "cppcheck --template='{\"file\":\"{file}\",\"line\":{line}, \"column\":{column}, \"severity\":\"{severity}\", \"message\":\"{message}\", \"id\":\"{id}\"}' --force --enable=all --suppress=missingIncludeSystem --quiet h7/ex2.cpp" +limit.stderr = 65 + +parsers = [ "cppcheck", "result-detail" ] +cppcheck.keyword = ["error", "warning", "portability", "performance", "style"] +cppcheck.weight = [15, 5, 5, 5, 5] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[cq] Cpplint" +command = "cpplint --linelength=120 --filter=-legal,-readability/casting,-whitespace,-runtime/printf,-runtime/threadsafe_fn,-runtime/int,-readability/todo,-build/include_subdir,-build/header_guard,-build/include_what_you_use --recursive --exclude=build h7/ex2.cpp" +limit.stdout = 65 + +parsers = [ "cpplint", "result-detail" ] +cpplint.keyword = [ "runtime", "readability", "build" ] +cpplint.weight = [ 5, 20, 10] +result-detail.exitstatus = true +result-detail.stderr = true +result-detail.time = false +result-detail.mem = false + +[[stages]] +name = "[joj] ex2-asan" +command="./h7/build/ex2-asan -a" +files.import = [ "h7/build/ex2-asan" ] +limit.mem = 91224961 + +parsers = [ "diff", "result-detail" ] +result-detail.exitstatus = true +result-detail.stderr = true + +# will be removed as long as the name is fixed +case0.diff.output.score = 5 +case0.limit.cpu = 1 +case0.limit.mem = 91224961 +case0.diff.output.ignorespaces = true +#case0.limit.stdout = 8 +#case0.command = "./h7/build/ex2" +case0.in = "case0.in" + +case1.diff.output.score = 5 +case1.limit.cpu = 1 +case1.limit.mem = 91224961 +case1.diff.output.ignorespaces = true +#case1.limit.stdout = 8 +#case1.command = "./h7/build/ex2" +case1.in = "case1.in" diff --git a/tests/convert/test_convert_cases.py b/tests/convert/test_convert_cases.py index 1a3392a..94d83d4 100644 --- a/tests/convert/test_convert_cases.py +++ b/tests/convert/test_convert_cases.py @@ -3,3 +3,23 @@ from tests.convert.utils import load_case def test_basic() -> None: load_case("basic") + + +def test_clang_tidy() -> None: + load_case("clang-tidy") + + +def test_cppcheck() -> None: + load_case("cppcheck") + + +def test_cpplint() -> None: + load_case("cpplint") + + +def test_diff() -> None: + load_case("diff") + + +def test_keyword() -> None: + load_case("keyword")