[pypy-svn] r51805 - pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/test

tverwaes at codespeak.net tverwaes at codespeak.net
Fri Feb 22 17:48:48 CET 2008


Author: tverwaes
Date: Fri Feb 22 17:48:47 2008
New Revision: 51805

Modified:
   pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/test/test_shadow.py
Log:
adding more shadow tests


Modified: pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/test/test_shadow.py
==============================================================================
--- pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/test/test_shadow.py	(original)
+++ pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/test/test_shadow.py	Fri Feb 22 17:48:47 2008
@@ -83,6 +83,7 @@
     w_m.bytes = bytes
     w_m.tempsize = tempsize
     w_m.argsize = argsize
+    w_m.literalsize = 2
     return w_m
 
 def methodcontext(w_sender=objtable.w_nil, pc=1, stackpointer=0, stacksize=5,
@@ -108,7 +109,7 @@
     w_object.store(constants.MTHDCTX_TEMP_FRAME_START, 'el')
     return w_object
 
-def test_methodcontext():
+def test_context():
     w_m = method()
     w_object = methodcontext(stackpointer=2, method=w_m)
     w_object2 = methodcontext(w_sender=w_object)
@@ -122,8 +123,8 @@
     assert s_object.w_receiver() == 'receiver'
     s_object2.settemp(0, 'a')
     s_object2.settemp(1, 'b')
-    assert s_object2.gettemp(0) == 'a'
     assert s_object2.gettemp(1) == 'b'
+    assert s_object2.gettemp(0) == 'a'
     assert s_object.w_method() == w_m
     idx = s_object.stackstart()
     w_object.store(idx + 1, 'f')
@@ -139,6 +140,18 @@
     assert s_object.pop() == 'f'
     assert s_object.stackpointer() == s_object.stackstart()
 
+def test_methodcontext():
+    w_m = method()
+                              # Point over 2 literals of size 4
+    w_object = methodcontext(pc=9,method=w_m)
+    s_object = w_object.as_methodcontext_get_shadow()
+    assert s_object.getbytecode() == 97
+    assert s_object.getbytecode() == 98
+    assert s_object.getbytecode() == 99
+    assert s_object.getbytecode() == 100
+    assert s_object.getbytecode() == 101
+    assert s_object.s_home() == s_object
+
 def process(w_context=methodcontext(), priority=utility.wrap_int(3)):
     w_object = model.W_PointersObject(None, 4)
     w_object.store(constants.NEXT_LINK_INDEX, 'foo')



More information about the Pypy-commit mailing list