25
25
#
26
26
# *****************************************************************************
27
27
28
+ import sys
28
29
from cstruct import sizeof , typedef , define , CStruct , NATIVE_ORDER
29
30
31
+ IS_64BITS = sys .maxsize > 2 ** 32
32
+
30
33
define ("UT_NAMESIZE" , 32 )
31
34
define ("UT_LINESIZE" , 32 )
32
35
define ("UT_HOSTSIZE" , 256 )
@@ -196,21 +199,36 @@ def test_utmp_sizeof():
196
199
197
200
198
201
def 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
204
214
205
215
206
216
def 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
209
223
210
224
211
225
def 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
214
232
215
233
216
234
def test_foo4_sizeof ():
@@ -219,15 +237,28 @@ def test_foo4_sizeof():
219
237
220
238
221
239
def 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
226
250
227
251
228
252
def 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