[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