diff options
author | Thomas Bernard <tbernard@go-engineering.de> | 2020-08-26 20:05:21 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-08-27 16:09:32 (GMT) |
commit | beab8bc29aa9938df3bf90fe5a50f926080765ed (patch) | |
tree | ce9081e26800c82b29c46401f51179c79ea5f7d6 /Tests | |
parent | efdd143459dcd5c3bdf873e377e546bafb972cad (diff) | |
download | CMake-beab8bc29aa9938df3bf90fe5a50f926080765ed.zip CMake-beab8bc29aa9938df3bf90fe5a50f926080765ed.tar.gz CMake-beab8bc29aa9938df3bf90fe5a50f926080765ed.tar.bz2 |
Tests: Add timeout on the RunCMake.ExternalProject download server
Fixes: #21132
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/ExternalProject/DownloadServer.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Tests/RunCMake/ExternalProject/DownloadServer.py b/Tests/RunCMake/ExternalProject/DownloadServer.py index ac0769f..3738317 100644 --- a/Tests/RunCMake/ExternalProject/DownloadServer.py +++ b/Tests/RunCMake/ExternalProject/DownloadServer.py @@ -4,6 +4,7 @@ import time import subprocess import sys import os +import threading args = None outerthread = None @@ -25,6 +26,13 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): self.wfile.write(data) self.close_connection = True +def runServer(fileName): + httpd = HTTPServer(('localhost', 0), SimpleHTTPRequestHandler) + with open(fileName,"w") as f: + f.write('http://localhost:{}/test'.format(httpd.socket.getsockname()[1])) + httpd.handle_request() + os.remove(fileName) + if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('--speed_limit', help='transfer rate limitation', action='store_true',default=False) @@ -35,8 +43,7 @@ if __name__ == "__main__": if not args.subprocess: subprocess.Popen([sys.executable]+sys.argv+['--subprocess'],stdin=subprocess.DEVNULL, stderr=subprocess.DEVNULL,stdout=subprocess.DEVNULL) else: - httpd = HTTPServer(('localhost', 0), SimpleHTTPRequestHandler) - with open(args.file,"w") as f: - f.write('http://localhost:{}/test'.format(httpd.socket.getsockname()[1])) - httpd.handle_request() - os.remove(args.file) + serverThread = threading.Thread(target=runServer,args=(args.file,)) + serverThread.daemon = True + serverThread.start() + serverThread.join(15) |