summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/ctypes/test/test_structures.py5
-rw-r--r--Modules/_ctypes/stgdict.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py
index 11c194b..67d98c9 100644
--- a/Lib/ctypes/test/test_structures.py
+++ b/Lib/ctypes/test/test_structures.py
@@ -1,3 +1,4 @@
+import platform
import unittest
from ctypes import *
from ctypes.test import need_symbol
@@ -5,6 +6,8 @@ from struct import calcsize
import _ctypes_test
from test import support
+MACHINE = platform.machine()
+
class SubclassesTest(unittest.TestCase):
def test_subclass(self):
class X(Structure):
@@ -477,6 +480,8 @@ class StructureTestCase(unittest.TestCase):
self.assertEqual(s.first, got.first)
self.assertEqual(s.second, got.second)
+ @unittest.skipIf(MACHINE in ('armv7l', 'ppc64'),
+ 'Test temporarily disabled on this architecture')
def test_array_in_struct(self):
# See bpo-22273
diff --git a/Modules/_ctypes/stgdict.c b/Modules/_ctypes/stgdict.c
index 62dcece..9c42a4f 100644
--- a/Modules/_ctypes/stgdict.c
+++ b/Modules/_ctypes/stgdict.c
@@ -652,7 +652,7 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
#define MAX_ELEMENTS 16
- if (arrays_seen && (size <= 16)) {
+ if (arrays_seen && (size <= MAX_ELEMENTS)) {
/*
* See bpo-22273. Arrays are normally treated as pointers, which is
* fine when an array name is being passed as parameter, but not when