[pypy-commit] pypy gc-incminimark-pinning: started writing tests for object pinning GCs

groggi noreply at buildbot.pypy.org
Mon Jun 2 17:23:45 CEST 2014


Author: Gregor Wegberg <code at gregorwegberg.com>
Branch: gc-incminimark-pinning
Changeset: r71809:3fc50a1fcf86
Date: 2014-05-08 21:13 +0200
http://bitbucket.org/pypy/pypy/changeset/3fc50a1fcf86/

Log:	started writing tests for object pinning GCs

diff --git a/rpython/memory/gc/test/test_object_pinning.py b/rpython/memory/gc/test/test_object_pinning.py
new file mode 100644
--- /dev/null
+++ b/rpython/memory/gc/test/test_object_pinning.py
@@ -0,0 +1,19 @@
+import py
+from rpython.rtyper.lltypesystem import lltype
+from rpython.memory.gc.incminimark import IncrementalMiniMarkGC
+from test_direct import BaseDirectGCTest
+
+S = lltype.GcForwardReference()
+S.become(lltype.GcStruct('S', ('someInt', lltype.Signed)))
+
+class PinningGCTest(BaseDirectGCTest):
+    def test_simple(self):
+        someIntValue = 100
+        obj = self.malloc(S)
+        obj.someInt = someIntValue
+        self.gc.pin(obj)
+        self.gc.collect() # obj should still live
+        assert obj.someInt == someIntValue
+
+class TestIncminimark(PinningGCTest):
+    from rpython.memory.gc.incminimark import IncrementalMiniMarkGC as GCClass
\ No newline at end of file


More information about the pypy-commit mailing list