mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
26 lines
876 B
Python
26 lines
876 B
Python
# coding=utf-8
|
|
import os
|
|
import judger
|
|
|
|
WA = 1
|
|
AC = 0
|
|
SPJ_ERROR = -1
|
|
|
|
|
|
def file_exists(path):
|
|
return os.path.exists(path)
|
|
|
|
|
|
def spj(path, max_cpu_time, max_memory, in_path, user_out_path):
|
|
if file_exists(in_path) and file_exists(user_out_path):
|
|
result = judger.run(path=path, in_file=in_path, out_file="/tmp/spj.out",
|
|
max_cpu_time=max_cpu_time, max_memory=max_memory,
|
|
args=[in_path, user_out_path], env=["PATH=" + os.environ.get("PATH", "")],
|
|
use_sandbox=True, use_nobody=True)
|
|
if result["signal"] == 0 and result["exit_status"] in [AC, WA, SPJ_ERROR]:
|
|
result["spj_result"] = result["exit_status"]
|
|
else:
|
|
result["spj_result"] = SPJ_ERROR
|
|
return result
|
|
else:
|
|
raise ValueError("in_path or user_out_path does not exist") |