STINNER Victor <victor.stin...@haypocalc.com> added the comment: I don't like your test because it depends on system endian:
+ if sys.byteorder == "little": + struct.menu.spam = 0x000000FF + else: + struct.menu.spam = 0xFF000000 I would prefer a test creating a structure from a byte string. Something like: --------------------------- import ctypes class Nested(ctypes.BigEndianStructure): _fields_ = ( ('x', ctypes.c_uint32), ('y', ctypes.c_uint32), ) class TestStruct(ctypes.BigEndianStructure): _fields_ = ( ('point', Nested), ) data = b'\0\0\0\1\0\0\0\2' assert len(data) == ctypes.sizeof(TestStruct) obj = ctypes.cast(data, ctypes.POINTER(TestStruct))[0] assert obj.point.x == 1 assert obj.point.y == 2 --------------------------- Use b'\1\0\0\0\2\0\0\0' for little endian. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4376> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com