[pypy-svn] pypy default: Writing an extra test which passes. It seems the issue is
arigo
commits-noreply at bitbucket.org
Tue Mar 15 20:44:33 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r42684:0d3d17c69cca
Date: 2011-03-15 15:44 -0400
http://bitbucket.org/pypy/pypy/changeset/0d3d17c69cca/
Log: Writing an extra test which passes. It seems the issue is only
about call_pure.
diff --git a/pypy/jit/metainterp/test/test_virtual.py b/pypy/jit/metainterp/test/test_virtual.py
--- a/pypy/jit/metainterp/test/test_virtual.py
+++ b/pypy/jit/metainterp/test/test_virtual.py
@@ -852,15 +852,46 @@
def f():
i = 0
- s = 0
+ s = 10000
a = A("data")
while i < 10:
mydriver.jit_merge_point(i=i, a=a, s=s)
if i > 1:
if a.state == 'data':
a.state = 'escaped'
+ s += 1000
else:
- s += 1
+ s += 100
+ else:
+ s += 10
+ i += 1
+ return s
+
+ res = self.meta_interp(f, [], repeat=7)
+ assert res == f()
+
+ def test_getfield_gc_pure_nobug(self):
+ mydriver = JitDriver(reds = ['i', 's', 'a'], greens = [])
+
+ class A(object):
+ _immutable_fields_ = ['foo']
+ def __init__(self, foo):
+ self.foo = foo
+
+ prebuilt42 = A(42)
+ prebuilt43 = A(43)
+
+ def f():
+ i = 0
+ s = 10000
+ a = prebuilt42
+ while i < 10:
+ mydriver.jit_merge_point(i=i, s=s, a=a)
+ if i > 1:
+ s += a.foo
+ a = prebuilt43
+ else:
+ s += 10
i += 1
return s
More information about the Pypy-commit
mailing list