Spaces:
Sleeping
Sleeping
import argparse | |
from sys import exit | |
import subprocess | |
from pathlib import Path | |
from generic_eval import main as gmain | |
def eval_script(path: Path): | |
status = None | |
stdout = None | |
stderr = None | |
exit_code = None | |
try: | |
build = subprocess.run(["go", "test", path], | |
timeout=30, | |
stdout=subprocess.PIPE, | |
stderr=subprocess.PIPE) | |
stdout = build.stdout.decode("utf-8", errors="ignore") | |
stderr = build.stderr.decode("utf-8", errors="ignore") | |
exit_code = build.returncode | |
# write to stderr just so that we can redirect stdout to a csv | |
if "[setup failed]" in stdout or "[build failed]" in stdout: | |
status = "SyntaxError" | |
elif "FAIL" in stdout: | |
status = "Exception" | |
else: | |
status = "OK" | |
except subprocess.TimeoutExpired: | |
status = "Timeout" | |
return { | |
"status": status, | |
"exit_code": exit_code, | |
"stdout": stdout, | |
"stderr": stderr, | |
} | |
if __name__ == "__main__": | |
gmain(eval_script, 'Go', '.go') | |