mirror of
https://github.com/QingdaoU/JudgeServer.git
synced 2025-01-16 06:14:18 +00:00
ed605d1d74
(cherry picked from commit 9a9fd10942f7e30bb27cd7e7dec980e4fef2d7ca)
143 lines
3.9 KiB
Python
143 lines
3.9 KiB
Python
# coding=utf-8
|
|
from __future__ import unicode_literals
|
|
|
|
default_env = ["LANG=en_US.UTF-8", "LANGUAGE=en_US:en", "LC_ALL=en_US.UTF-8"]
|
|
|
|
|
|
c_lang_config = {
|
|
"compile": {
|
|
"src_name": "main.c",
|
|
"exe_name": "main",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": 128 * 1024 * 1024,
|
|
"compile_command": "/usr/bin/gcc -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c99 {src_path} -lm -o {exe_path}",
|
|
},
|
|
"run": {
|
|
"command": "{exe_path}",
|
|
"seccomp_rule": "c_cpp",
|
|
"env": default_env
|
|
}
|
|
}
|
|
|
|
c_lang_spj_compile = {
|
|
"src_name": "spj-{spj_version}.c",
|
|
"exe_name": "spj-{spj_version}",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": 1024 * 1024 * 1024,
|
|
"compile_command": "/usr/bin/gcc -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c99 {src_path} -lm -o {exe_path}"
|
|
}
|
|
|
|
c_lang_spj_config = {
|
|
"exe_name": "spj-{spj_version}",
|
|
"command": "{exe_path} {in_file_path} {user_out_file_path}",
|
|
"seccomp_rule": "c_cpp"
|
|
}
|
|
|
|
cpp_lang_config = {
|
|
"compile": {
|
|
"src_name": "main.cpp",
|
|
"exe_name": "main",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": 128 * 1024 * 1024,
|
|
"compile_command": "/usr/bin/g++ -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c++11 {src_path} -lm -o {exe_path}",
|
|
},
|
|
"run": {
|
|
"command": "{exe_path}",
|
|
"seccomp_rule": "c_cpp",
|
|
"env": default_env
|
|
}
|
|
}
|
|
|
|
java_lang_config = {
|
|
"name": "java",
|
|
"compile": {
|
|
"src_name": "Main.java",
|
|
"exe_name": "Main",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": -1,
|
|
"compile_command": "/usr/bin/javac {src_path} -d {exe_dir} -encoding UTF8"
|
|
},
|
|
"run": {
|
|
"command": "/usr/bin/java -cp {exe_dir} -XX:MaxRAM={max_memory}k -Djava.security.manager -Dfile.encoding=UTF-8 -Djava.security.policy==/etc/java_policy -Djava.awt.headless=true Main",
|
|
"seccomp_rule": None,
|
|
"env": default_env,
|
|
"memory_limit_check_only": 1
|
|
}
|
|
}
|
|
|
|
|
|
py2_lang_config = {
|
|
"compile": {
|
|
"src_name": "solution.py",
|
|
"exe_name": "solution.pyc",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": 128 * 1024 * 1024,
|
|
"compile_command": "/usr/bin/python -m py_compile {src_path}",
|
|
},
|
|
"run": {
|
|
"command": "/usr/bin/python {exe_path}",
|
|
"seccomp_rule": "general",
|
|
"env": default_env
|
|
}
|
|
}
|
|
|
|
py3_lang_config = {
|
|
"compile": {
|
|
"src_name": "solution.py",
|
|
"exe_name": "__pycache__/solution.cpython-36.pyc",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": 128 * 1024 * 1024,
|
|
"compile_command": "/usr/bin/python3 -m py_compile {src_path}",
|
|
},
|
|
"run": {
|
|
"command": "/usr/bin/python3 {exe_path}",
|
|
"seccomp_rule": "general",
|
|
"env": ["PYTHONIOENCODING=UTF-8"] + default_env
|
|
}
|
|
}
|
|
|
|
go_lang_config = {
|
|
"compile": {
|
|
"src_name": "main.go",
|
|
"exe_name": "main",
|
|
"max_cpu_time": 3000,
|
|
"max_real_time": 5000,
|
|
"max_memory": 1024 * 1024 * 1024,
|
|
"compile_command": "/usr/bin/go build -o {exe_path} {src_path}",
|
|
"env": ["GOCACHE=/tmp", "GOPATH=/tmp/go"]
|
|
},
|
|
"run": {
|
|
"command": "{exe_path}",
|
|
"seccomp_rule": "",
|
|
# 降低内存占用
|
|
"env": ["GODEBUG=madvdontneed=1", "GOCACHE=off"] + default_env,
|
|
"memory_limit_check_only": 1
|
|
}
|
|
}
|
|
|
|
php_lang_config = {
|
|
"run": {
|
|
"exe_name": "solution.php",
|
|
"command": "/usr/bin/php {exe_path}",
|
|
"seccomp_rule": "",
|
|
"env": default_env,
|
|
"memory_limit_check_only": 1
|
|
}
|
|
}
|
|
|
|
js_lang_config = {
|
|
"run": {
|
|
"exe_name": "solution.js",
|
|
"command": "/usr/bin/node {exe_path}",
|
|
"seccomp_rule": "",
|
|
"env": ["NO_COLOR=true"] + default_env,
|
|
"memory_limit_check_only": 1
|
|
}
|
|
}
|