Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions Lib/test/support/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,16 @@ def requires(resource, msg=None):
if resource == 'gui' and not _is_gui_available():
raise ResourceDenied(_is_gui_available.reason)

def _get_kernel_version(sysname="Linux"):
import platform
if platform.system() != sysname:
return None
version_txt = platform.release().split('-', 1)[0]
try:
return tuple(map(int, version_txt.split('.')))
except ValueError:
return None

def _requires_unix_version(sysname, min_version):
"""Decorator raising SkipTest if the OS is `sysname` and the version is less
than `min_version`.
Expand Down
8 changes: 7 additions & 1 deletion Lib/test/test_socket.py
Original file line number Diff line number Diff line change
Expand Up @@ -7139,8 +7139,14 @@ def test_aes_cbc(self):
self.assertEqual(len(dec), msglen * multiplier)
self.assertEqual(dec, msg * multiplier)

@support.requires_linux_version(4, 9) # see issue29324
@support.requires_linux_version(4, 9) # see gh-73510
def test_aead_aes_gcm(self):
kernel_version = support._get_kernel_version("Linux")
if kernel_version is not None:
if kernel_version >= (6, 16) and kernel_version < (6, 18):
# See https://github.com/python/cpython/issues/139310.
self.skipTest("upstream Linux kernel issue")

key = bytes.fromhex('c939cc13397c1d37de6ae0e1cb7c423c')
iv = bytes.fromhex('b3d8cc017cbb89b39e0f67e2')
plain = bytes.fromhex('c3b3c41f113a31b73d9a5cd432103069')
Expand Down
Loading