From 6fc643674983e27ec5cc312f2e83468050d1d364 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Wed, 4 Dec 2024 08:58:22 +0000 Subject: gh-127572: Fix `test_structmembers` initialization (GH-127577) gh-127572: Fix `test_structmembers` initialization. The 'C' format code expects an `int` as a destination (not a `char`). This led to test failures on big-endian platforms like s390x. Use the 'c' format code, which expects a `char` as the destination (but requires a Python byte objects instead of a str). --- Lib/test/test_capi/test_structmembers.py | 2 +- Modules/_testcapi/structmember.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_capi/test_structmembers.py b/Lib/test/test_capi/test_structmembers.py index ae9168f..f14ad9a 100644 --- a/Lib/test/test_capi/test_structmembers.py +++ b/Lib/test/test_capi/test_structmembers.py @@ -39,7 +39,7 @@ def _make_test_object(cls): "hi", # T_STRING_INPLACE 12, # T_LONGLONG 13, # T_ULONGLONG - "c", # T_CHAR + b"c", # T_CHAR ) diff --git a/Modules/_testcapi/structmember.c b/Modules/_testcapi/structmember.c index c1861db..ef30a5a 100644 --- a/Modules/_testcapi/structmember.c +++ b/Modules/_testcapi/structmember.c @@ -60,7 +60,7 @@ test_structmembers_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) "T_FLOAT", "T_DOUBLE", "T_STRING_INPLACE", "T_LONGLONG", "T_ULONGLONG", "T_CHAR", NULL}; - static const char fmt[] = "|bbBhHiIlknfds#LKC"; + static const char fmt[] = "|bbBhHiIlknfds#LKc"; test_structmembers *ob; const char *s = NULL; Py_ssize_t string_len = 0; -- cgit v0.12