Kaydet (Commit) d77e2eaa authored tarafından Benjamin Peterson's avatar Benjamin Peterson

merge 3.2

import sys, unittest, struct, math import sys, unittest, struct, math, ctypes
from binascii import hexlify from binascii import hexlify
from ctypes import * from ctypes import *
...@@ -188,16 +188,6 @@ class Test(unittest.TestCase): ...@@ -188,16 +188,6 @@ class Test(unittest.TestCase):
# nested structures with different byteorders # nested structures with different byteorders
# create nested structures with given byteorders and set memory to data # create nested structures with given byteorders and set memory to data
def set_structures(endianness, nested_endianness, data):
class NestedStructure(nested_endianness):
_fields_ = [("x", c_uint32),
("y", c_uint32)]
class TestStructure(endianness):
_fields_ = [("point", NestedStructure)]
self.assertEqual(len(data), sizeof(TestStructure))
return cast(data, POINTER(TestStructure))[0]
for nested, data in ( for nested, data in (
(BigEndianStructure, b'\0\0\0\1\0\0\0\2'), (BigEndianStructure, b'\0\0\0\1\0\0\0\2'),
...@@ -208,7 +198,17 @@ class Test(unittest.TestCase): ...@@ -208,7 +198,17 @@ class Test(unittest.TestCase):
LittleEndianStructure, LittleEndianStructure,
Structure, Structure,
): ):
s = set_structures(parent, nested, data) class NestedStructure(nested):
_fields_ = [("x", c_uint32),
("y", c_uint32)]
class TestStructure(parent):
_fields_ = [("point", NestedStructure)]
self.assertEqual(len(data), sizeof(TestStructure))
ptr = POINTER(TestStructure)
s = cast(data, ptr)[0]
del ctypes._pointer_type_cache[TestStructure]
self.assertEqual(s.point.x, 1) self.assertEqual(s.point.x, 1)
self.assertEqual(s.point.y, 2) self.assertEqual(s.point.y, 2)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment