docker_test / src /eval_ocaml.py
朱东升
requirements update20
5491a9c
raw
history blame
531 Bytes
from pathlib import Path
from .safe_subprocess import run
def eval_script(path: Path):
r = run(["ocaml", str(path)])
if r.timeout:
status = "Timeout"
elif r.exit_code == 0:
status = "OK"
elif "Assert_failure" in r.stderr:
status = "AssertionError"
elif "Syntax error" in r.stderr:
status = "SyntaxError"
else:
status = "Exception"
return {
"status": status,
"exit_code": r.exit_code,
"stdout": r.stdout,
"stderr": r.stderr,
}