mirror of
https://github.com/python/cpython.git
synced 2026-05-28 13:20:56 +00:00
gh-121938: ctypes: Skip test of _pack_-ed struct with c_int64 on x86 (GH-125877)
The current auto-generated tests don't cover this; it's instead tested manually.
This commit is contained in:
parent
9c01db40aa
commit
13c9fa3d64
1 changed files with 14 additions and 0 deletions
|
|
@ -135,6 +135,18 @@ class Packed3(Structure):
|
|||
|
||||
@register()
|
||||
class Packed4(Structure):
|
||||
def _maybe_skip():
|
||||
# `_pack_` enables MSVC-style packing, but keeps platform-specific
|
||||
# alignments.
|
||||
# The C code we generate for GCC/clang currently uses
|
||||
# `__attribute__((ms_struct))`, which activates MSVC layout *and*
|
||||
# alignments, that is, sizeof(basic type) == alignment(basic type).
|
||||
# On a Pentium, int64 is 32-bit aligned, so the two won't match.
|
||||
# The expected behavior is instead tested in
|
||||
# StructureTestCase.test_packed, over in test_structures.py.
|
||||
if sizeof(c_int64) != alignment(c_int64):
|
||||
raise unittest.SkipTest('cannot test on this platform')
|
||||
|
||||
_fields_ = [('a', c_int8), ('b', c_int64)]
|
||||
_pack_ = 8
|
||||
|
||||
|
|
@ -436,6 +448,8 @@ def test_generated_data(self):
|
|||
"""
|
||||
for name, cls in TESTCASES.items():
|
||||
with self.subTest(name=name):
|
||||
if _maybe_skip := getattr(cls, '_maybe_skip', None):
|
||||
_maybe_skip()
|
||||
expected = iter(_ctypes_test.get_generated_test_data(name))
|
||||
expected_name = next(expected)
|
||||
if expected_name is None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue