| 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() |