diff options
author | R David Murray <rdmurray@bitdance.com> | 2014-10-12 13:54:48 -0400 |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2014-10-12 13:54:48 -0400 |
commit | 25425b5d212732fc1fe03db504bdc010183de2e6 (patch) | |
tree | 80de04b8f24825b84d46e0c1fb40ceeecf5c0d25 /Lib/ctypes/test | |
parent | 82e944c665044e8bf852954ab6b8c02b69246775 (diff) | |
download | cpython-25425b5d212732fc1fe03db504bdc010183de2e6.tar.gz |
#13096: Fix segfault in CTypes POINTER handling of large values.
Patch by Meador Inge.
Diffstat (limited to 'Lib/ctypes/test')
-rw-r--r-- | Lib/ctypes/test/test_pointers.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/ctypes/test/test_pointers.py b/Lib/ctypes/test/test_pointers.py index f8ef0ab830..4cd3a7a689 100644 --- a/Lib/ctypes/test/test_pointers.py +++ b/Lib/ctypes/test/test_pointers.py @@ -7,6 +7,8 @@ ctype_types = [c_byte, c_ubyte, c_short, c_ushort, c_int, c_uint, c_long, c_ulong, c_longlong, c_ulonglong, c_double, c_float] python_types = [int, int, int, int, int, int, int, int, int, int, float, float] +LargeNamedType = type('T' * 2 ** 25, (Structure,), {}) +large_string = 'T' * 2 ** 25 class PointersTestCase(unittest.TestCase): @@ -188,5 +190,11 @@ class PointersTestCase(unittest.TestCase): mth = WINFUNCTYPE(None)(42, "name", (), None) self.assertEqual(bool(mth), True) + def test_pointer_type_name(self): + self.assertTrue(POINTER(LargeNamedType)) + + def test_pointer_type_str_name(self): + self.assertTrue(POINTER(large_string)) + if __name__ == '__main__': unittest.main() |