Author: Alex Gaynor <alex.gay...@gmail.com>
Branch: 
Changeset: r54723:dd34d145d841
Date: 2012-04-24 10:11 -0400
http://bitbucket.org/pypy/pypy/changeset/dd34d145d841/

Log:    Failing test for an elidable function with arguments that become
        pure as a result of the vstring optimization.

diff --git a/pypy/jit/metainterp/test/test_ajit.py 
b/pypy/jit/metainterp/test/test_ajit.py
--- a/pypy/jit/metainterp/test/test_ajit.py
+++ b/pypy/jit/metainterp/test/test_ajit.py
@@ -3022,6 +3022,27 @@
         res = self.meta_interp(f, [32])
         assert res == f(32)
 
+    def test_elidable_vstring_const(self):
+        myjitdriver = JitDriver(greens = ["n"], reds = ["i", "c"])
+        @elidable
+        def g(s):
+            return s + "hello"
+        @unroll_safe
+        def make_str(n):
+            return "".join(["a" for _ in range(n)])
+        def f(n):
+            i = 0
+            c = 0
+            while i < n:
+                myjitdriver.jit_merge_point(n=n, i=i, c=c)
+                s = make_str(n // 5)
+                c += len(g(s))
+                i += 1
+            return c
+        res = self.meta_interp(f, [10])
+        assert res == 70
+        self.check_resops({"int_lt": 2, "int_add": 4, "guard_true": 2, "jump": 
1})
+
 
 class TestOOtype(BasicTests, OOJitMixin):
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to