[pypy-svn] r68004 - in pypy/trunk/pypy/jit/backend/llsupport: . test
arigo at codespeak.net
arigo at codespeak.net
Tue Sep 29 21:58:27 CEST 2009
Author: arigo
Date: Tue Sep 29 21:58:27 2009
New Revision: 68004
Modified:
pypy/trunk/pypy/jit/backend/llsupport/symbolic.py
pypy/trunk/pypy/jit/backend/llsupport/test/test_symbolic.py
Log:
Fix symbolic.py and the test to be more general.
Modified: pypy/trunk/pypy/jit/backend/llsupport/symbolic.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/llsupport/symbolic.py (original)
+++ pypy/trunk/pypy/jit/backend/llsupport/symbolic.py Tue Sep 29 21:58:27 2009
@@ -48,7 +48,7 @@
else:
before_array_part = 0
carray = ll2ctypes.get_ctypes_type(T)
- assert carray.length.size == 4
+ assert carray.length.size == WORD
ofs_length = before_array_part + carray.length.offset
basesize = before_array_part + carray.items.offset
carrayitem = ll2ctypes.get_ctypes_type(T.OF)
Modified: pypy/trunk/pypy/jit/backend/llsupport/test/test_symbolic.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/llsupport/test/test_symbolic.py (original)
+++ pypy/trunk/pypy/jit/backend/llsupport/test/test_symbolic.py Tue Sep 29 21:58:27 2009
@@ -2,11 +2,9 @@
from pypy.jit.backend.llsupport.symbolic import *
from pypy.rpython.lltypesystem import lltype, rffi
-# This test file is here and not in llsupport/test/ because it checks
-# that we get correct numbers for a 32-bit machine.
-class FakeStats(object):
- pass
+WORD = rffi.sizeof(lltype.Signed)
+PTRWORD = rffi.sizeof(llmemory.GCREF)
S = lltype.GcStruct('S', ('x', lltype.Signed),
('y', lltype.Signed),
@@ -18,33 +16,32 @@
ofs_y, size_y = get_field_token(S, 'y', False)
ofs_z, size_z = get_field_token(S, 'z', False)
# ofs_x might be 0 or not, depending on how we count the headers
- # but the rest should be as expected for a 386 machine
- assert size_x == size_y == size_z == 4
+ assert size_x == size_y == size_z == WORD
assert ofs_x >= 0
- assert ofs_y == ofs_x + 4
- assert ofs_z == ofs_x + 8
+ assert ofs_y == ofs_x + WORD
+ assert ofs_z == ofs_y + WORD
def test_struct_size():
ofs_z, size_z = get_field_token(S, 'z', False)
totalsize = get_size(S, False)
- assert totalsize == ofs_z + 4
+ assert totalsize == ofs_z + WORD
def test_primitive_size():
- assert get_size(lltype.Signed, False) == 4
+ assert get_size(lltype.Signed, False) == WORD
assert get_size(lltype.Char, False) == 1
- assert get_size(lltype.Ptr(S), False) == 4
+ assert get_size(lltype.Ptr(S), False) == PTRWORD
def test_array_token():
A = lltype.GcArray(lltype.Char)
basesize, itemsize, ofs_length = get_array_token(A, False)
- assert basesize >= 4 # at least the 'length', maybe some gc headers
+ assert basesize >= WORD # at least the 'length', maybe some gc headers
assert itemsize == 1
- assert ofs_length == basesize - 4
+ assert ofs_length == basesize - WORD
A = lltype.GcArray(lltype.Signed)
basesize, itemsize, ofs_length = get_array_token(A, False)
- assert basesize >= 4 # at least the 'length', maybe some gc headers
- assert itemsize == 4
- assert ofs_length == basesize - 4
+ assert basesize >= WORD # at least the 'length', maybe some gc headers
+ assert itemsize == WORD
+ assert ofs_length == basesize - WORD
def test_varsized_struct_size():
S1 = lltype.GcStruct('S1', ('parent', S),
@@ -54,9 +51,9 @@
ofs_extra, size_extra = get_field_token(S1, 'extra', False)
basesize, itemsize, ofs_length = get_array_token(S1, False)
assert size_parent == ofs_extra
- assert size_extra == 4
- assert ofs_length == ofs_extra + 4
- assert basesize == ofs_length + 4
+ assert size_extra == WORD
+ assert ofs_length == ofs_extra + WORD
+ assert basesize == ofs_length + WORD
assert itemsize == 1
def test_string():
@@ -75,7 +72,3 @@
assert rawbytes[basesize+1] == 'p'
assert rawbytes[basesize+2] == 'a'
assert rawbytes[basesize+3] == 'm'
- assert rawbytes[ofs_length+0] == chr(4)
- assert rawbytes[ofs_length+1] == chr(0)
- assert rawbytes[ofs_length+2] == chr(0)
- assert rawbytes[ofs_length+3] == chr(0)
More information about the Pypy-commit
mailing list