def run(self):
"""Runs the autotest. Diff will be stored in self.diff"""
process = subprocess.Popen([self.binary] + self.args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
for line in self.input:
process.stdin.write(line.encode())
try:
out, err = process.communicate(timeout=self.time_limit) # TODO test timeout
if err:
self.diff = """Encountered error running test:
Output: {}
Error output: {}
""".format(out.decode(), err.decode())
else:
self.diff = diff(out.decode(), self.expected) # TODO make sure I didn't break diff
except subprocess.TimeoutExpired:
self.diff = colours['red']('Time limit exceeded.')
评论列表
文章目录