From 3f9623ee60c27541ed5a917bf7720fe84820ebe0 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Tue, 26 May 2026 10:10:11 +0800 Subject: [PATCH 1/2] Add another common pattern for iOS SSL failures --- Lib/test/test_ssl.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index a60e96053b86d19..2ae8b228d671dfd 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -5698,15 +5698,18 @@ def non_linux_skip_if_other_okay_error(self, err): return # Expect the full test setup to always work on Linux. if (isinstance(err, (ConnectionResetError, ConnectionAbortedError)) or (isinstance(err, OSError) and err.errno == errno.EINVAL) or - re.search('wrong.version.number', str(getattr(err, "reason", "")), re.I) or - re.search('record.layer.failure', str(getattr(err, "reason", "")), re.I) + re.search( + r'wrong.version.number|record.layer.failure|http.request', + str(getattr(err, "reason", "")), + re.I + ) ): # On Windows the TCP RST leads to a ConnectionResetError # (ECONNRESET) which Linux doesn't appear to surface to userspace. # If wrap_socket() winds up on the "if connected:" path and doing # the actual wrapping... we get an SSLError from OpenSSL. This is # typically WRONG_VERSION_NUMBER. The same happens on iOS, but - # RECORD_LAYER_FAILURE is the error. + # RECORD_LAYER_FAILURE or HTTP_REQUEST is the error. # # While appropriate, neither is the scenario we're specifically # trying to test. The way this test is written is known to work on From 5e9b009684f2382ab4aa328d76728dfa92fb879d Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Tue, 26 May 2026 10:12:27 +0800 Subject: [PATCH 2/2] Strip an additional whitespace from the start of log lines. --- Platforms/Apple/testbed/__main__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Platforms/Apple/testbed/__main__.py b/Platforms/Apple/testbed/__main__.py index 0dd77ab8b827974..b3eed38571d9708 100644 --- a/Platforms/Apple/testbed/__main__.py +++ b/Platforms/Apple/testbed/__main__.py @@ -21,7 +21,7 @@ LOG_PREFIX_REGEX = re.compile( r"^\d{4}-\d{2}-\d{2}" # YYYY-MM-DD r"\s+\d+:\d{2}:\d{2}\.\d+\+\d{4}" # HH:MM:SS.ssssss+ZZZZ - r"\s+iOSTestbed\[\d+:\w+\]" # Process/thread ID + r"\s+iOSTestbed\[\d+:\w+\] " # Process/thread ID )