| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import argparse |
| import SimpleHTTPServer |
| import SocketServer |
| import sys |
| import threading |
| import time |
| |
| |
| class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler): |
| |
| def do_GET(self): |
| self.wfile.write('SUCCESS!') |
| |
| |
| def GetArgs(): |
| """Returns the specified command line args.""" |
| parser = argparse.ArgumentParser() |
| parser.add_argument('--port', required=True, type=int) |
| parser.add_argument('--timeout', type=int, default=60) |
| return parser.parse_args() |
| |
| |
| def main(): |
| """Run a webserver until the process is killed.""" |
| server = None |
| args = GetArgs() |
| try: |
| server = SocketServer.TCPServer(('', args.port), Handler) |
| thread = threading.Thread(target=server.serve_forever) |
| thread.start() |
| start = time.time() |
| while time.time() < start + args.timeout: |
| time.sleep(1) |
| finally: |
| if server: |
| server.shutdown() |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |