[pypy-commit] lang-smalltalk storage: Fixed tests and removed obsolete tests.

anton_gulenko noreply at buildbot.pypy.org
Fri Jul 18 14:08:31 CEST 2014


Author: Anton Gulenko <anton.gulenko at googlemail.com>
Branch: storage
Changeset: r905:6656aa03e7b0
Date: 2014-07-14 13:32 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/6656aa03e7b0/

Log:	Fixed tests and removed obsolete tests.

diff --git a/spyvm/test/test_interpreter.py b/spyvm/test/test_interpreter.py
--- a/spyvm/test/test_interpreter.py
+++ b/spyvm/test/test_interpreter.py
@@ -26,8 +26,11 @@
         if retval is not None:
             return retval.w_self()
     except interpreter.Return, nlr:
-        nlr.s_target_context.push(nlr.value)
-        return nlr.s_target_context.w_self()
+        new_context = nlr.s_target_context
+        if new_context is None:
+            new_context = ctxt.s_sender()
+        new_context.push(nlr.value)
+        return new_context.w_self()
 
 def assert_list(list, expected):
     for i in range(len(list)):
@@ -975,81 +978,6 @@
             2, "value:value:"]],
         test)
 
-def test_stacking_interpreter():
-    # | testBlock |
-    # testBlock := [ :aNumber |
-    #     aNumber = 0
-    #         ifTrue: [ 0 ]
-    #         ifFalse: [ (testBlock value: aNumber - 1) + aNumber ]].
-    # ^ testBlock value: 11
-    interp = TestInterpreter(space, max_stack_depth=3)
-    #create a method with the correct bytecodes and a literal
-    bytes = reduce(operator.add, map(chr, [0x8a, 0x01, 0x68, 0x10, 0x8f, 0x11,
-        0x00, 0x11, 0x10, 0x75, 0xb6, 0x9a, 0x75, 0xa4, 0x09, 0x8c, 0x00, 0x01,
-        0x10, 0x76, 0xb1, 0xca, 0x10, 0xb0, 0x7d, 0x8e, 0x00, 0x00, 0x8c, 0x00,
-        0x00, 0x20, 0xca, 0x7c]))
-    w_method = model.W_CompiledMethod(space, len(bytes))
-    w_method.islarge = 1
-    w_method.bytes = bytes
-    w_method.argsize=0
-    w_method._tempsize=1
-    w_method.setliterals([space.wrap_int(11)])
-
-    #create a frame for that method
-    w_frame = w_method.create_frame(space, space.wrap_int(0), []).w_self()
-    try:
-        interp.loop(w_frame)
-    except interpreter.ReturnFromTopLevel, e:
-        assert space.unwrap_int(e.object) == 66
-    except interpreter.StackOverflow, e:
-        assert False
-    try:
-        interp = TestInterpreter(space, image_name="", max_stack_depth=10)
-        interp._loop = True
-        interp.loop_bytecodes(w_method.create_frame(space, space.wrap_int(0), []))
-    except interpreter.StackOverflow, e:
-        assert isinstance(e.s_new_context, shadow.MethodContextShadow)
-    except interpreter.ReturnFromTopLevel, e:
-        assert False
-
-class StackTestInterpreter(TestInterpreter):
-    def stack_frame(self, s_frame, s_sender, may_interrupt=True):
-        stack_depth = self.current_stack_depth
-        for i in range(stack_depth + 1):
-            assert sys._getframe(5 + i * 7).f_code.co_name == 'loop_bytecodes'
-        assert sys._getframe(6 + stack_depth * 7).f_code.co_name == 'loop'
-        return interpreter.Interpreter.stack_frame(self, s_frame, s_sender, may_interrupt)
-
-def test_actual_stackdepth():
-    # | testBlock |
-    # testBlock := [ :aNumber |
-    #     aNumber = 0
-    #         ifTrue: [ 2 ]
-    #         ifFalse: [ (testBlock value: aNumber - 1) + aNumber ]].
-    # ^ testBlock value: 11
-    interp = StackTestInterpreter(space, max_stack_depth=10)
-    #create a method with the correct bytecodes and a literal
-    bytes = reduce(operator.add, map(chr, [0x8a, 0x01, 0x68, 0x10, 0x8f, 0x11,
-        0x00, 0x11, 0x10, 0x75, 0xb6, 0x9a, 0x77, 0xa4, 0x09, 0x8c, 0x00, 0x01,
-        0x10, 0x76, 0xb1, 0xca, 0x10, 0xb0, 0x7d, 0x8e, 0x00, 0x00, 0x8c, 0x00,
-        0x00, 0x20, 0xca, 0x7c]))
-
-    w_method = model.W_CompiledMethod(space, len(bytes))
-    w_method.islarge = 1
-    w_method.bytes = bytes
-    w_method.argsize=0
-    w_method._tempsize=1
-    w_method.setliterals([space.wrap_int(11)])
-
-    #create a frame for that method
-    w_frame = w_method.create_frame(space, space.wrap_int(0), []).w_self()
-    try:
-        interp.loop(w_frame)
-    except interpreter.ReturnFromTopLevel, e:
-        assert space.unwrap_int(e.object) == 68
-    except interpreter.StackOverflow, e:
-        assert False
-
 def test_c_stack_reset_on_sender_chain_manipulation():
     bytes = reduce(operator.add, map(chr, [0x84, 0xc0, 0x00]))
     w_frame, s_frame = new_frame(bytes)


More information about the pypy-commit mailing list