[Lldb-commits] [lldb] [llvm] [lldb] Add HTTPS hardening tests for SymbolLocatorSymStore (PR #192274)
Stefan Gränitz via lldb-commits
lldb-commits at lists.llvm.org
Fri Apr 17 03:39:43 PDT 2026
================
@@ -90,6 +94,119 @@ def __exit__(self, *exc_info):
self._thread.join()
+class HTTPSServer:
+ """
+ Context Manager to serve a local directory tree via HTTPS.
+ """
+
+ class ErrorAwareTCPServer(socketserver.ThreadingTCPServer):
+ """TCP layer that will suppress errors of the given type."""
+
+ def __init__(self, address, handler, err):
+ self.err = err
+ super().__init__(address, handler)
+
+ def handle_error(self, request, client_address):
+ if isinstance(sys.exc_info()[1], self.err):
+ return
+ super().handle_error(request, client_address)
+
+ def __init__(self, dir=None, handler=None, cert=None):
+ if handler is None:
+ handler = partial(http.server.SimpleHTTPRequestHandler, directory=dir)
+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
+ ctx.load_cert_chain(cert.file, cert.key_file)
+ address = ("localhost", 0) # auto-select free port
+ self._server = self.ErrorAwareTCPServer(address, handler, ssl.SSLError)
+ self._server.socket = ctx.wrap_socket(self._server.socket, server_side=True)
+ self._thread = threading.Thread(target=self._server.serve_forever, daemon=True)
+
+ def __enter__(self):
+ self._thread.start()
+ host, port = self._server.server_address
+ return f"https://{host}:{port}"
+
+ def __exit__(self, *exc_info):
+ if self._server:
+ self._server.shutdown()
+ self._server.server_close()
+ if self._thread:
+ self._thread.join()
+
+
+# FIXME: Drop this once the package is rolled out on all build bots
+def skipUnlessPackageAvailable(name):
----------------
weliveindetail wrote:
Thanks, done
https://github.com/llvm/llvm-project/pull/192274
More information about the lldb-commits
mailing list