mirror of
https://github.com/python/cpython.git
synced 2026-05-06 04:37:33 -04:00
[3.14] gh-148508: Add resilience to SSL preauth tests on iOS (GH-148536) (#148539)
Adds handling for a test case seen in the iOS SSL tests where an SSL connection fails to
handshake correctly.
(cherry picked from commit c40e8b016a)
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
This commit is contained in:
committed by
GitHub
parent
d42874a1ba
commit
adb2a3ac51
+11
-6
@@ -5294,15 +5294,20 @@ class TestPreHandshakeClose(unittest.TestCase):
|
||||
return # Expect the full test setup to always work on Linux.
|
||||
if (isinstance(err, ConnectionResetError) or
|
||||
(isinstance(err, OSError) and err.errno == errno.EINVAL) or
|
||||
re.search('wrong.version.number', str(getattr(err, "reason", "")), re.I)):
|
||||
re.search('wrong.version.number', str(getattr(err, "reason", "")), re.I) or
|
||||
re.search('record.layer.failure', 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. Typically
|
||||
# WRONG_VERSION_NUMBER. While appropriate, neither is the scenario
|
||||
# we're specifically trying to test. The way this test is written
|
||||
# is known to work on Linux. We'll skip it anywhere else that it
|
||||
# does not present as doing so.
|
||||
# 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.
|
||||
#
|
||||
# While appropriate, neither is the scenario we're specifically
|
||||
# trying to test. The way this test is written is known to work on
|
||||
# Linux. We'll skip it anywhere else that it does not present as
|
||||
# doing so.
|
||||
try:
|
||||
self.skipTest(f"Could not recreate conditions on {sys.platform}:"
|
||||
f" {err=}")
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
An intermittent timing error when running SSL tests on iOS has been
|
||||
resolved.
|
||||
Reference in New Issue
Block a user