2525#
2626# *****************************************************************************
2727
28+ import sys
2829from cstruct import sizeof , typedef , define , CStruct , NATIVE_ORDER
2930
31+ IS_64BITS = sys .maxsize > 2 ** 32
32+
3033define ("UT_NAMESIZE" , 32 )
3134define ("UT_LINESIZE" , 32 )
3235define ("UT_HOSTSIZE" , 256 )
@@ -196,21 +199,36 @@ def test_utmp_sizeof():
196199
197200
198201def test_foo1_sizeof ():
199- assert Foo1 .__fields_types__ ['p' ].padding == 0
200- assert Foo1 .__fields_types__ ['c' ].padding == 0
201- assert Foo1 .__fields_types__ ['x' ].padding == 7
202- assert sizeof ("struct Foo1" ) == 24
203- assert Foo1 ().size == 24
202+ if IS_64BITS :
203+ assert Foo1 .__fields_types__ ['p' ].padding == 0
204+ assert Foo1 .__fields_types__ ['c' ].padding == 0
205+ assert Foo1 .__fields_types__ ['x' ].padding == 7
206+ assert sizeof ("struct Foo1" ) == 24
207+ assert Foo1 ().size == 24
208+ else :
209+ assert Foo1 .__fields_types__ ['p' ].padding == 0
210+ assert Foo1 .__fields_types__ ['c' ].padding == 0
211+ assert Foo1 .__fields_types__ ['x' ].padding == 3
212+ assert sizeof ("struct Foo1" ) == 12
213+ assert Foo1 ().size == 12
204214
205215
206216def test_foo2_sizeof ():
207- assert sizeof ("struct Foo2" ) == 24
208- assert Foo2 ().size == 24
217+ if IS_64BITS :
218+ assert sizeof ("struct Foo2" ) == 24
219+ assert Foo2 ().size == 24
220+ else :
221+ assert sizeof ("struct Foo2" ) == 16
222+ assert Foo2 ().size == 16
209223
210224
211225def test_foo3_sizeof ():
212- assert sizeof ("struct Foo3" ) == 16
213- assert Foo3 ().size == 16
226+ if IS_64BITS :
227+ assert sizeof ("struct Foo3" ) == 16
228+ assert Foo3 ().size == 16
229+ else :
230+ assert sizeof ("struct Foo3" ) == 8
231+ assert Foo3 ().size == 8
214232
215233
216234def test_foo4_sizeof ():
@@ -219,15 +237,28 @@ def test_foo4_sizeof():
219237
220238
221239def test_foo5_sizeof ():
222- assert Foo5 .__fields_types__ ['c' ].padding == 0
223- assert Foo5 .__fields_types__ ['inner' ].padding == 7
224- assert sizeof ("struct Foo5" ) == 24
225- assert Foo5 ().size == 24
240+ if IS_64BITS :
241+ assert Foo5 .__fields_types__ ['c' ].padding == 0
242+ assert Foo5 .__fields_types__ ['inner' ].padding == 7
243+ assert sizeof ("struct Foo5" ) == 24
244+ assert Foo5 ().size == 24
245+ else :
246+ assert Foo5 .__fields_types__ ['c' ].padding == 0
247+ assert Foo5 .__fields_types__ ['inner' ].padding == 3
248+ assert sizeof ("struct Foo5" ) == 12
249+ assert Foo5 ().size == 12
226250
227251
228252def test_foo10_sizeof ():
229- assert Foo10 .__fields_types__ ['c' ].padding == 0
230- assert Foo10 .__fields_types__ ['p' ].padding == 7
231- assert Foo10 .__fields_types__ ['s' ].padding == 0
232- assert sizeof ("struct Foo10" ) == 24
233- assert Foo10 ().size == 24
253+ if IS_64BITS :
254+ assert Foo10 .__fields_types__ ['c' ].padding == 0
255+ assert Foo10 .__fields_types__ ['p' ].padding == 7
256+ assert Foo10 .__fields_types__ ['s' ].padding == 0
257+ assert sizeof ("struct Foo10" ) == 24
258+ assert Foo10 ().size == 24
259+ else :
260+ assert Foo10 .__fields_types__ ['c' ].padding == 0
261+ assert Foo10 .__fields_types__ ['p' ].padding == 3
262+ assert Foo10 .__fields_types__ ['s' ].padding == 0
263+ assert sizeof ("struct Foo10" ) == 12
264+ assert Foo10 ().size == 12
0 commit comments