25 lines
694 B
Python
25 lines
694 B
Python
from __future__ import print_function
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import threading
|
|
|
|
def kill_subprocess(process):
|
|
process.kill()
|
|
os._exit(1)
|
|
|
|
# Pass -f=none and --output-style=GNU to get only one line of output per input.
|
|
cmd = subprocess.Popen([sys.argv[1],
|
|
'--obj=' + sys.argv[2],
|
|
'-f=none',
|
|
'--output-style=GNU'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
|
|
watchdog = threading.Timer(20, kill_subprocess, args=[cmd])
|
|
watchdog.start()
|
|
cmd.stdin.write(b'0\n')
|
|
cmd.stdin.flush()
|
|
print(cmd.stdout.readline())
|
|
cmd.stdin.write(b'bad\n')
|
|
cmd.stdin.flush()
|
|
print(cmd.stdout.readline())
|
|
watchdog.cancel()
|