Author: Maciej Fijalkowski <[email protected]>
Branch: kill-gen-store-back-in
Changeset: r62772:5cbac99bcd55
Date: 2013-03-25 17:14 -0700
http://bitbucket.org/pypy/pypy/changeset/5cbac99bcd55/

Log:    make the test check what I want

diff --git a/rpython/jit/metainterp/test/test_recursive.py 
b/rpython/jit/metainterp/test/test_recursive.py
--- a/rpython/jit/metainterp/test/test_recursive.py
+++ b/rpython/jit/metainterp/test/test_recursive.py
@@ -33,7 +33,7 @@
         myjitdriver = JitDriver(greens=[], reds=['n', 'm'])
         class Error(Exception):
             pass
-        
+
         def f(n):
             m = n - 2
             while True:
@@ -246,7 +246,7 @@
 
         class Exc(Exception):
             pass
-        
+
         def f(code, n):
             pc = 0
             while pc < len(code):
@@ -286,7 +286,7 @@
             return "%s %d %s" % (code, pc, code[pc])
         myjitdriver = JitDriver(greens=['pc', 'code'], reds=['n'],
                                 get_printable_location=p)
-        
+
         def f(code, n):
             pc = 0
             while pc < len(code):
@@ -309,7 +309,7 @@
             return n
         def main(n):
             set_param(None, 'threshold', 3)
-            set_param(None, 'trace_eagerness', 5)            
+            set_param(None, 'trace_eagerness', 5)
             return f("c-l", n)
         expected = main(100)
         res = self.meta_interp(main, [100], enable_opts='', inline=True)
@@ -328,7 +328,7 @@
             if n > 0:
                 return recursive(n - 1) + 1
             return 0
-        def loop(n):            
+        def loop(n):
             set_param(myjitdriver, "threshold", 10)
             pc = 0
             while n:
@@ -411,8 +411,8 @@
                 self.i7 = i7
                 self.i8 = i8
                 self.i9 = i9
-                
-        
+
+
         def loop(n):
             i = 0
             o = A(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
@@ -444,8 +444,8 @@
                 self.i7 = i7
                 self.i8 = i8
                 self.i9 = i9
-                
-        
+
+
         def loop(n):
             i = 0
             o = A(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
@@ -467,7 +467,7 @@
         res = self.meta_interp(main, [20], failargs_limit=FAILARGS_LIMIT,
                                listops=True)
         assert not res
-        self.check_aborted_count(5)        
+        self.check_aborted_count(5)
 
     def test_set_param_inlining(self):
         myjitdriver = JitDriver(greens=[], reds=['n', 'recurse'])
@@ -480,7 +480,7 @@
                     myjitdriver.can_enter_jit(n=n, recurse=recurse)
             return n
         TRACE_LIMIT = 66
- 
+
         def main(inline):
             set_param(None, "threshold", 10)
             set_param(None, 'function_threshold', 60)
@@ -502,7 +502,7 @@
             return "'%s' at %d: %s" % (code, pc, code[pc])
         myjitdriver = JitDriver(greens=['pc', 'code'], reds=['n'],
                                 get_printable_location=p)
-        
+
         def f(code, n):
             pc = 0
             while pc < len(code):
@@ -543,7 +543,7 @@
             return "%s %d %s" % (code, pc, code[pc])
         myjitdriver = JitDriver(greens=['pc', 'code'], reds=['n'],
                                 get_printable_location=p)
-        
+
         def f(code, n):
             pc = 0
             while pc < len(code):
@@ -576,7 +576,7 @@
                 result += f('-c-----------l-', i+100)
         self.meta_interp(g, [10], backendopt=True)
         self.check_aborted_count(1)
-        self.check_resops(call=0, call_assembler=2)        
+        self.check_resops(call=0, call_assembler=2)
         self.check_jitcell_token_count(2)
 
     def test_directly_call_assembler(self):
@@ -717,7 +717,7 @@
         class MyException(Exception):
             def __init__(self, x):
                 self.x = x
-        
+
         driver = JitDriver(greens = ['codeno'], reds = ['i'],
                            get_printable_location = lambda codeno : 
str(codeno))
 
@@ -736,7 +736,7 @@
                 raise MyException(1)
 
         self.meta_interp(portal, [2], inline=True)
-        self.check_history(call_assembler=1)        
+        self.check_history(call_assembler=1)
 
     def test_directly_call_assembler_fail_guard(self):
         driver = JitDriver(greens = ['codeno'], reds = ['i', 'k'],
@@ -765,11 +765,11 @@
         class Thing(object):
             def __init__(self, val):
                 self.val = val
-        
+
         class Frame(object):
             _virtualizable2_ = ['thing']
-        
-        driver = JitDriver(greens = ['codeno'], reds = ['i', 'frame'],
+
+        driver = JitDriver(greens = ['codeno'], reds = ['i', 's', 'frame'],
                            virtualizables = ['frame'],
                            get_printable_location = lambda codeno : 
str(codeno))
 
@@ -781,19 +781,22 @@
 
         def portal(codeno, frame):
             i = 0
+            s = 0
             while i < 10:
-                driver.can_enter_jit(frame=frame, codeno=codeno, i=i)
-                driver.jit_merge_point(frame=frame, codeno=codeno, i=i)
+                driver.can_enter_jit(frame=frame, codeno=codeno, i=i, s=s)
+                driver.jit_merge_point(frame=frame, codeno=codeno, i=i, s=s)
                 nextval = frame.thing.val
                 if codeno == 0:
                     subframe = Frame()
                     subframe.thing = Thing(nextval)
                     nextval = portal(1, subframe)
+                    s += subframe.thing.val
                 frame.thing = Thing(nextval + 1)
                 i += 1
             return frame.thing.val
 
         res = self.meta_interp(main, [0], inline=True)
+        self.check_resops(force_virtualizable=2)
         assert res == main(0)
 
     def test_directly_call_assembler_virtualizable_reset_token(self):
@@ -803,10 +806,10 @@
         class Thing(object):
             def __init__(self, val):
                 self.val = val
-        
+
         class Frame(object):
             _virtualizable2_ = ['thing']
-        
+
         driver = JitDriver(greens = ['codeno'], reds = ['i', 'frame'],
                            virtualizables = ['frame'],
                            get_printable_location = lambda codeno : 
str(codeno))
@@ -854,10 +857,10 @@
         class Thing(object):
             def __init__(self, val):
                 self.val = val
-        
+
         class Frame(object):
             _virtualizable2_ = ['thing']
-        
+
         driver = JitDriver(greens = ['codeno'], reds = ['i', 'frame'],
                            virtualizables = ['frame'],
                            get_printable_location = lambda codeno : 
str(codeno))
@@ -918,7 +921,7 @@
         def main(codeno, n, a):
             frame = Frame([a, a+1, a+2, a+3], 0)
             return f(codeno, n, a, frame)
-        
+
         def f(codeno, n, a, frame):
             x = 0
             while n > 0:
@@ -948,10 +951,10 @@
         class Thing(object):
             def __init__(self, val):
                 self.val = val
-        
+
         class Frame(object):
             _virtualizable2_ = ['thing']
-        
+
         driver = JitDriver(greens = ['codeno'], reds = ['i', 'frame'],
                            virtualizables = ['frame'],
                            get_printable_location = lambda codeno : 
str(codeno))
@@ -1195,7 +1198,7 @@
 
     def test_trace_from_start_always(self):
         from rpython.rlib.nonconst import NonConstant
-        
+
         driver = JitDriver(greens = ['c'], reds = ['i', 'v'])
 
         def portal(c, i, v):
@@ -1220,7 +1223,7 @@
 
     def test_trace_from_start_does_not_prevent_inlining(self):
         driver = JitDriver(greens = ['c', 'bc'], reds = ['i'])
-        
+
         def portal(bc, c, i):
             while True:
                 driver.jit_merge_point(c=c, bc=bc, i=i)
@@ -1229,7 +1232,7 @@
                     c += 1
                 else:
                     return
-                if c == 10: # bc == 0                    
+                if c == 10: # bc == 0
                     c = 0
                     if i >= 100:
                         return
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to