[pypy-commit] pypy gc-incminimark-pinning: add first simple JIT test with a pinned object

groggi noreply at buildbot.pypy.org
Thu Aug 14 19:05:24 CEST 2014


Author: Gregor Wegberg <code at gregorwegberg.com>
Branch: gc-incminimark-pinning
Changeset: r72812:b5b57f12e441
Date: 2014-08-14 19:03 +0200
http://bitbucket.org/pypy/pypy/changeset/b5b57f12e441/

Log:	add first simple JIT test with a pinned object

diff --git a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
--- a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
+++ b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
@@ -775,3 +775,32 @@
 
     def test_compile_framework_call_assembler(self):
         self.run('compile_framework_call_assembler')
+
+    def define_pinned_simple(cls):
+        from rpython.rlib.jit import promote
+        class H:
+            inst = None
+        helper = H()
+
+        @dont_look_inside
+        def get_y():
+            if not helper.inst:
+                helper.inst = X()
+                helper.inst.x = 101
+                assert rgc.pin(helper.inst)
+            else:
+                assert rgc._is_pinned(helper.inst)
+            return helper.inst
+
+        def fn(n, x, *args):
+            t = get_y()
+            promote(t)
+            t.x += 11
+            n -= 1
+            return (n, x) + args
+
+        return None, fn, None
+
+    def test_pinned_simple(self):
+        self.run('pinned_simple')
+


More information about the pypy-commit mailing list