@@ -83,7 +83,7 @@ class X(Structure):
8383 class Y (Structure ):
8484 _fields_ = [("x" , c_char * 3 ),
8585 ("y" , c_int )]
86- self .assertEqual (alignment (Y ), calcsize ( "i" ))
86+ self .assertEqual (alignment (Y ), alignment ( c_int ))
8787 self .assertEqual (sizeof (Y ), calcsize ("3si" ))
8888
8989 class SI (Structure ):
@@ -175,23 +175,23 @@ class X(Structure):
175175 self .assertEqual (sizeof (X ), 10 )
176176 self .assertEqual (X .b .offset , 2 )
177177
178+ import struct
179+ longlong_size = struct .calcsize ("q" )
180+ longlong_align = struct .calcsize ("bq" ) - longlong_size
181+
178182 class X (Structure ):
179183 _fields_ = [("a" , c_byte ),
180184 ("b" , c_longlong )]
181185 _pack_ = 4
182- self .assertEqual (sizeof (X ), 12 )
183- self .assertEqual (X .b .offset , 4 )
184-
185- import struct
186- longlong_size = struct .calcsize ("q" )
187- longlong_align = struct .calcsize ("bq" ) - longlong_size
186+ self .assertEqual (sizeof (X ), min (4 , longlong_align ) + longlong_size )
187+ self .assertEqual (X .b .offset , min (4 , longlong_align ))
188188
189189 class X (Structure ):
190190 _fields_ = [("a" , c_byte ),
191191 ("b" , c_longlong )]
192192 _pack_ = 8
193193
194- self .assertEqual (sizeof (X ), longlong_align + longlong_size )
194+ self .assertEqual (sizeof (X ), min ( 8 , longlong_align ) + longlong_size )
195195 self .assertEqual (X .b .offset , min (8 , longlong_align ))
196196
197197
0 commit comments