From 48c04d28304251f6016f77f674855dc51d019768 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Wed, 19 Mar 2025 01:53:48 -0400 Subject: [PATCH 1/7] feat: support create from template files --- joj3_config_generator/loader.py | 11 +++++++ joj3_config_generator/models/answer.py | 31 ++++++++++++++++--- .../templates/C++/clang-tidy.toml | 13 ++++++++ .../templates/C++/cppcheck.toml | 12 +++++++ .../templates/C++/cpplint.toml | 12 +++++++ .../templates/Python/basic.toml | 3 ++ .../templates/Rust/basic.toml | 3 ++ joj3_config_generator/transformers/answer.py | 8 +++++ 8 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 joj3_config_generator/templates/C++/clang-tidy.toml create mode 100644 joj3_config_generator/templates/C++/cppcheck.toml create mode 100644 joj3_config_generator/templates/C++/cpplint.toml create mode 100644 joj3_config_generator/templates/Python/basic.toml create mode 100644 joj3_config_generator/templates/Rust/basic.toml diff --git a/joj3_config_generator/loader.py b/joj3_config_generator/loader.py index 0fb74f1..6c8b877 100644 --- a/joj3_config_generator/loader.py +++ b/joj3_config_generator/loader.py @@ -1,3 +1,4 @@ +from importlib import resources from pathlib import Path from typing import Tuple @@ -13,6 +14,16 @@ def load_joj3_task_toml_answers() -> answer.Answers: language: answer.LanguageInterface = inquirer.list_input( "What's the language?", choices=answer.LANGUAGES ) + if inquirer.confirm("Load content from templates?", default=True): + answers = inquirer.prompt(language.get_template_questions()) + templates_dir = resources.files(f"joj3_config_generator.templates").joinpath( + language.__str__() + ) + template_file_path = answers["template_file"] + template_file_content = Path(templates_dir / template_file_path).read_text() + return answer.Answers( + name=name, language=language, template_file_content=template_file_content + ) stages = inquirer.checkbox( "What's the stages?", choices=[member.value for member in language.Stage], diff --git a/joj3_config_generator/models/answer.py b/joj3_config_generator/models/answer.py index b79aebf..706db22 100644 --- a/joj3_config_generator/models/answer.py +++ b/joj3_config_generator/models/answer.py @@ -1,5 +1,6 @@ from abc import ABC, abstractmethod from enum import Enum +from importlib import resources from typing import Any, ClassVar, Dict, List import inquirer @@ -7,8 +8,9 @@ from pydantic import BaseModel, ConfigDict class LanguageInterface(ABC): + @classmethod @abstractmethod - def __str__(self) -> str: ... + def __str__(cls) -> str: ... @abstractmethod class Stage(str, Enum): ... @@ -31,9 +33,27 @@ class LanguageInterface(ABC): @abstractmethod def get_attribute_questions(cls) -> List[Any]: ... + @classmethod + def get_template_questions(cls) -> List[Any]: + templates_dir = resources.files(f"joj3_config_generator.templates").joinpath( + cls.__str__() + ) + choices = [] + for entry in templates_dir.iterdir(): + if entry.is_file() and entry.name.endswith(".toml"): + choices.append(entry.name) + return [ + inquirer.List( + "template_file", + message="Which template file do you want?", + choices=choices, + ), + ] + class Cpp(LanguageInterface): - def __str__(self) -> str: + @classmethod + def __str__(cls) -> str: return "C++" class Stage(str, Enum): @@ -67,7 +87,8 @@ class Cpp(LanguageInterface): class Python(LanguageInterface): - def __str__(self) -> str: + @classmethod + def __str__(cls) -> str: return "Python" class Stage(str, Enum): @@ -91,7 +112,8 @@ class Python(LanguageInterface): class Rust(LanguageInterface): - def __str__(self) -> str: + @classmethod + def __str__(cls) -> str: return "Rust" class Stage(str, Enum): @@ -120,5 +142,6 @@ LANGUAGES = [ class Answers(BaseModel): name: str language: LanguageInterface + template_file_content: str = "" model_config = ConfigDict(arbitrary_types_allowed=True) diff --git a/joj3_config_generator/templates/C++/clang-tidy.toml b/joj3_config_generator/templates/C++/clang-tidy.toml new file mode 100644 index 0000000..d7d29f6 --- /dev/null +++ b/joj3_config_generator/templates/C++/clang-tidy.toml @@ -0,0 +1,13 @@ +[[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 = "65m" + +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 diff --git a/joj3_config_generator/templates/C++/cppcheck.toml b/joj3_config_generator/templates/C++/cppcheck.toml new file mode 100644 index 0000000..24d9c6b --- /dev/null +++ b/joj3_config_generator/templates/C++/cppcheck.toml @@ -0,0 +1,12 @@ +[[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 = "65m" + +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 diff --git a/joj3_config_generator/templates/C++/cpplint.toml b/joj3_config_generator/templates/C++/cpplint.toml new file mode 100644 index 0000000..3740279 --- /dev/null +++ b/joj3_config_generator/templates/C++/cpplint.toml @@ -0,0 +1,12 @@ +[[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 = "65m" + +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 diff --git a/joj3_config_generator/templates/Python/basic.toml b/joj3_config_generator/templates/Python/basic.toml new file mode 100644 index 0000000..bdad5aa --- /dev/null +++ b/joj3_config_generator/templates/Python/basic.toml @@ -0,0 +1,3 @@ +[[stages]] +name = "Run" +command = "python3 main.py" diff --git a/joj3_config_generator/templates/Rust/basic.toml b/joj3_config_generator/templates/Rust/basic.toml new file mode 100644 index 0000000..03d2323 --- /dev/null +++ b/joj3_config_generator/templates/Rust/basic.toml @@ -0,0 +1,3 @@ +[[stages]] +name = "Run" +command = "cargo run" diff --git a/joj3_config_generator/transformers/answer.py b/joj3_config_generator/transformers/answer.py index 1b19bc2..b0a9917 100644 --- a/joj3_config_generator/transformers/answer.py +++ b/joj3_config_generator/transformers/answer.py @@ -1,9 +1,17 @@ from typing import Any, Callable, Dict, List, Type +import tomli + from joj3_config_generator.models import answer, task def get_task_conf_from_answers(answers: answer.Answers) -> task.Config: + if answers.template_file_content: + toml_dict = tomli.loads(answers.template_file_content) + return task.Config( + task=task.Task(name=answers.name), + stages=toml_dict["stages"], + ) language = answers.language transformer_dict = get_transformer_dict() transformer = transformer_dict[type(language)] From 19f5c7193f61707f7c74b95b38b5c006e5e93b43 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Wed, 19 Mar 2025 02:18:41 -0400 Subject: [PATCH 2/7] ci(build): upload coverage on master only --- .gitea/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index da1d8ee..250617f 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -30,6 +30,7 @@ jobs: run: | pdm run coverage - name: Upload Coverage to Codacy + if: github.ref == 'refs/heads/master' env: CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} run: | From 160f16ca2b122cc3e99d9551b85e170f829ff878 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Wed, 19 Mar 2025 09:19:58 -0400 Subject: [PATCH 3/7] style: better types --- joj3_config_generator/loader.py | 9 +++-- joj3_config_generator/models/answer.py | 39 +++++++++----------- joj3_config_generator/transformers/answer.py | 12 +++--- tests/create/utils.py | 2 +- 4 files changed, 29 insertions(+), 33 deletions(-) diff --git a/joj3_config_generator/loader.py b/joj3_config_generator/loader.py index 6c8b877..cbb3ee3 100644 --- a/joj3_config_generator/loader.py +++ b/joj3_config_generator/loader.py @@ -1,6 +1,6 @@ from importlib import resources from pathlib import Path -from typing import Tuple +from typing import Tuple, Type, cast import inquirer import tomli @@ -11,13 +11,14 @@ from joj3_config_generator.models import answer, joj1, repo, task def load_joj3_task_toml_answers() -> answer.Answers: name = inquirer.text("What's the task name?", default="hw0") - language: answer.LanguageInterface = inquirer.list_input( - "What's the language?", choices=answer.LANGUAGES + language = inquirer.list_input( + "What's the language?", choices=[(cls.name, cls) for cls in answer.LANGUAGES] ) + language = cast(Type[answer.LanguageInterface], language) if inquirer.confirm("Load content from templates?", default=True): answers = inquirer.prompt(language.get_template_questions()) templates_dir = resources.files(f"joj3_config_generator.templates").joinpath( - language.__str__() + language.name ) template_file_path = answers["template_file"] template_file_content = Path(templates_dir / template_file_path).read_text() diff --git a/joj3_config_generator/models/answer.py b/joj3_config_generator/models/answer.py index 706db22..3be9fd7 100644 --- a/joj3_config_generator/models/answer.py +++ b/joj3_config_generator/models/answer.py @@ -1,16 +1,14 @@ from abc import ABC, abstractmethod from enum import Enum from importlib import resources -from typing import Any, ClassVar, Dict, List +from typing import Any, ClassVar, Dict, List, Type import inquirer from pydantic import BaseModel, ConfigDict class LanguageInterface(ABC): - @classmethod - @abstractmethod - def __str__(cls) -> str: ... + name: ClassVar[str] @abstractmethod class Stage(str, Enum): ... @@ -36,7 +34,7 @@ class LanguageInterface(ABC): @classmethod def get_template_questions(cls) -> List[Any]: templates_dir = resources.files(f"joj3_config_generator.templates").joinpath( - cls.__str__() + cls.name ) choices = [] for entry in templates_dir.iterdir(): @@ -52,9 +50,7 @@ class LanguageInterface(ABC): class Cpp(LanguageInterface): - @classmethod - def __str__(cls) -> str: - return "C++" + name = "C++" class Stage(str, Enum): COMPILATION = "Compilation" @@ -72,24 +68,23 @@ class Cpp(LanguageInterface): @classmethod def get_attribute_questions(cls) -> List[Any]: + attribute: Cpp.Attribute = cls.attribute return [ inquirer.Text( name="compile_command", message="Compile command", - default=cls.attribute.compile_command, + default=attribute.compile_command, ), inquirer.Text( name="run_command", message="Run command", - default=cls.attribute.run_command, + default=attribute.run_command, ), ] class Python(LanguageInterface): - @classmethod - def __str__(cls) -> str: - return "Python" + name = "Python" class Stage(str, Enum): RUN = "Run" @@ -102,19 +97,18 @@ class Python(LanguageInterface): @classmethod def get_attribute_questions(cls) -> List[Any]: + attribute: Python.Attribute = cls.attribute return [ inquirer.Text( name="run_command", message="Run command", - default=cls.attribute.run_command, + default=attribute.run_command, ), ] class Rust(LanguageInterface): - @classmethod - def __str__(cls) -> str: - return "Rust" + name = "Rust" class Stage(str, Enum): COMPILATION = "Compilation" @@ -129,19 +123,20 @@ class Rust(LanguageInterface): @classmethod def get_attribute_questions(cls) -> List[Any]: + attribute: Rust.Attribute = cls.attribute return [] -LANGUAGES = [ - Cpp(), - Python(), - Rust(), +LANGUAGES: List[Type[LanguageInterface]] = [ + Cpp, + Python, + Rust, ] class Answers(BaseModel): name: str - language: LanguageInterface + language: Type[LanguageInterface] template_file_content: str = "" model_config = ConfigDict(arbitrary_types_allowed=True) diff --git a/joj3_config_generator/transformers/answer.py b/joj3_config_generator/transformers/answer.py index b0a9917..cdfc29b 100644 --- a/joj3_config_generator/transformers/answer.py +++ b/joj3_config_generator/transformers/answer.py @@ -14,14 +14,14 @@ def get_task_conf_from_answers(answers: answer.Answers) -> task.Config: ) language = answers.language transformer_dict = get_transformer_dict() - transformer = transformer_dict[type(language)] + transformer = transformer_dict[language] stages = transformer(language) return task.Config(task=task.Task(name=answers.name), stages=stages) def get_transformer_dict() -> Dict[ - Type[Any], - Callable[[Any], List[task.Stage]], + Type[answer.LanguageInterface], + Callable[[Type[Any]], List[task.Stage]], ]: return { answer.Cpp: get_cpp_stages, @@ -31,7 +31,7 @@ def get_transformer_dict() -> Dict[ # TODO: implement -def get_cpp_stages(language: answer.Cpp) -> List[task.Stage]: +def get_cpp_stages(language: Type[answer.Cpp]) -> List[task.Stage]: stages = language.stages attribute: answer.Cpp.Attribute = language.attribute task_stages = [] @@ -47,14 +47,14 @@ def get_cpp_stages(language: answer.Cpp) -> List[task.Stage]: # TODO: implement -def get_python_stages(language: answer.Python) -> List[task.Stage]: +def get_python_stages(language: Type[answer.Python]) -> List[task.Stage]: stages = language.stages attribute: answer.Python.Attribute = language.attribute return [] # TODO: implement -def get_rust_stages(language: answer.Rust) -> List[task.Stage]: +def get_rust_stages(language: Type[answer.Rust]) -> List[task.Stage]: stages = language.stages attribute: answer.Rust.Attribute = language.attribute return [] diff --git a/tests/create/utils.py b/tests/create/utils.py index 45fe305..d4d3bba 100644 --- a/tests/create/utils.py +++ b/tests/create/utils.py @@ -13,7 +13,7 @@ def load_case(case_name: str) -> None: answers_json_path = root / case_name / "answers.json" task_toml_path = root / case_name / "task.toml" answers_dict = json.loads(answers_json_path.read_text()) - language = next(x for x in answer.LANGUAGES if str(x) == answers_dict["language"]) + language = next(x for x in answer.LANGUAGES if x.name == answers_dict["language"]) language.set_stages(answers_dict["stages"]) language.set_attribute(answers_dict["attribute"]) answers = answer.Answers(name=answers_dict["name"], language=language) From 56c4981340eba230ba6c136b7c3b81b7f885d940 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Wed, 19 Mar 2025 23:59:19 -0400 Subject: [PATCH 4/7] chore: better template files list --- joj3_config_generator/loader.py | 7 +------ joj3_config_generator/models/answer.py | 9 ++++----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/joj3_config_generator/loader.py b/joj3_config_generator/loader.py index cbb3ee3..fa20876 100644 --- a/joj3_config_generator/loader.py +++ b/joj3_config_generator/loader.py @@ -1,4 +1,3 @@ -from importlib import resources from pathlib import Path from typing import Tuple, Type, cast @@ -17,11 +16,7 @@ def load_joj3_task_toml_answers() -> answer.Answers: language = cast(Type[answer.LanguageInterface], language) if inquirer.confirm("Load content from templates?", default=True): answers = inquirer.prompt(language.get_template_questions()) - templates_dir = resources.files(f"joj3_config_generator.templates").joinpath( - language.name - ) - template_file_path = answers["template_file"] - template_file_content = Path(templates_dir / template_file_path).read_text() + template_file_content: str = answers["template_file_content"] return answer.Answers( name=name, language=language, template_file_content=template_file_content ) diff --git a/joj3_config_generator/models/answer.py b/joj3_config_generator/models/answer.py index 3be9fd7..78cc2de 100644 --- a/joj3_config_generator/models/answer.py +++ b/joj3_config_generator/models/answer.py @@ -33,16 +33,15 @@ class LanguageInterface(ABC): @classmethod def get_template_questions(cls) -> List[Any]: - templates_dir = resources.files(f"joj3_config_generator.templates").joinpath( - cls.name - ) + anchor = "joj3_config_generator.templates" + templates_dir = resources.files(anchor).joinpath(cls.name) choices = [] for entry in templates_dir.iterdir(): if entry.is_file() and entry.name.endswith(".toml"): - choices.append(entry.name) + choices.append((entry.name, entry.read_text())) return [ inquirer.List( - "template_file", + "template_file_content", message="Which template file do you want?", choices=choices, ), From 2c78d75e07ad0425d88385984039a5d476881202 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Fri, 21 Mar 2025 17:26:58 -0400 Subject: [PATCH 5/7] feat: longer time limit for health check --- joj3_config_generator/transformers/repo.py | 6 ++++-- tests/convert/basic/task.json | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/joj3_config_generator/transformers/repo.py b/joj3_config_generator/transformers/repo.py index d80ba42..6397167 100644 --- a/joj3_config_generator/transformers/repo.py +++ b/joj3_config_generator/transformers/repo.py @@ -2,7 +2,7 @@ import hashlib from pathlib import Path from typing import List -from joj3_config_generator.models import repo, result +from joj3_config_generator.models import common, repo, result from joj3_config_generator.models.const import TEAPOT_CONFIG_ROOT, TEAPOT_LOG_PATH @@ -71,7 +71,9 @@ def get_health_check_stage(repo_conf: repo.Config) -> result.StageDetail: executor=result.Executor( name="local", with_=result.ExecutorWith( - default=result.Cmd(), + default=result.Cmd( + cpu_limit=common.Time("10s"), clock_limit=common.Time("20s") + ), cases=[ result.OptionalCmd( args=get_health_check_args(repo_conf), diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json index 3030ada..08d990a 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -32,8 +32,8 @@ "max": 33554432, "pipe": true }, - "cpuLimit": 1000000000, - "clockLimit": 2000000000, + "cpuLimit": 10000000000, + "clockLimit": 20000000000, "memoryLimit": 134217728, "stackLimit": 0, "procLimit": 50, From 81e08b4a8c91f0ba96fc23e29af52c338012623a Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Fri, 21 Mar 2025 17:50:05 -0400 Subject: [PATCH 6/7] feat: longer time limit for teapot upload --- joj3_config_generator/transformers/repo.py | 2 ++ tests/convert/basic/task.json | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/joj3_config_generator/transformers/repo.py b/joj3_config_generator/transformers/repo.py index 6397167..b05f0b9 100644 --- a/joj3_config_generator/transformers/repo.py +++ b/joj3_config_generator/transformers/repo.py @@ -25,6 +25,8 @@ def get_teapot_stage(repo_conf: repo.Config) -> result.StageDetail: default=result.Cmd( args=args, env=[f"LOG_FILE_PATH={TEAPOT_LOG_PATH}"], + cpu_limit=common.Time("30s"), + clock_limit=common.Time("60s"), ), cases=[], ), diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json index 08d990a..57ded7d 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -806,8 +806,8 @@ "max": 33554432, "pipe": true }, - "cpuLimit": 1000000000, - "clockLimit": 2000000000, + "cpuLimit": 30000000000, + "clockLimit": 60000000000, "memoryLimit": 134217728, "stackLimit": 0, "procLimit": 50, From 305663538dc285dab9ff666e1611f19f62ca36e7 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Fri, 21 Mar 2025 19:10:32 -0400 Subject: [PATCH 7/7] feat: higher mem limit for clang --- joj3_config_generator/models/const.py | 2 +- tests/convert/basic/task.json | 14 +++++++------- tests/convert/clang-tidy/task.json | 2 +- tests/convert/cppcheck/task.json | 2 +- tests/convert/cpplint/task.json | 2 +- tests/convert/keyword/task.json | 2 +- tests/convert/result-detail/task.json | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/joj3_config_generator/models/const.py b/joj3_config_generator/models/const.py index fae8215..95a6706 100644 --- a/joj3_config_generator/models/const.py +++ b/joj3_config_generator/models/const.py @@ -3,7 +3,7 @@ from pathlib import Path from joj3_config_generator.models.common import Memory, Time DEFAULT_CPU_LIMIT = Time("1s") -DEFAULT_MEMORY_LIMIT = Memory("128m") +DEFAULT_MEMORY_LIMIT = Memory("256m") DEFAULT_FILE_LIMIT = Memory("32m") JOJ3_CONFIG_ROOT = Path("/home/tt/.config/joj") diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json index 57ded7d..035c7f7 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -34,7 +34,7 @@ }, "cpuLimit": 10000000000, "clockLimit": 20000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, @@ -124,7 +124,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, @@ -211,7 +211,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, @@ -311,7 +311,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, @@ -437,7 +437,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, @@ -582,7 +582,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, @@ -808,7 +808,7 @@ }, "cpuLimit": 30000000000, "clockLimit": 60000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, diff --git a/tests/convert/clang-tidy/task.json b/tests/convert/clang-tidy/task.json index 5c9b30e..5c589fd 100644 --- a/tests/convert/clang-tidy/task.json +++ b/tests/convert/clang-tidy/task.json @@ -42,7 +42,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, diff --git a/tests/convert/cppcheck/task.json b/tests/convert/cppcheck/task.json index bc2d317..19120b2 100644 --- a/tests/convert/cppcheck/task.json +++ b/tests/convert/cppcheck/task.json @@ -42,7 +42,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, diff --git a/tests/convert/cpplint/task.json b/tests/convert/cpplint/task.json index 8fdb56f..d7ff8d5 100644 --- a/tests/convert/cpplint/task.json +++ b/tests/convert/cpplint/task.json @@ -41,7 +41,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, diff --git a/tests/convert/keyword/task.json b/tests/convert/keyword/task.json index 355db46..6f1d913 100644 --- a/tests/convert/keyword/task.json +++ b/tests/convert/keyword/task.json @@ -40,7 +40,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0, diff --git a/tests/convert/result-detail/task.json b/tests/convert/result-detail/task.json index cd060e1..ef32905 100644 --- a/tests/convert/result-detail/task.json +++ b/tests/convert/result-detail/task.json @@ -40,7 +40,7 @@ }, "cpuLimit": 1000000000, "clockLimit": 2000000000, - "memoryLimit": 134217728, + "memoryLimit": 268435456, "stackLimit": 0, "procLimit": 50, "cpuRateLimit": 0,