Author: Gregor Wegberg <[email protected]>
Branch: gc-incminimark-pinning
Changeset: r71823:da5833a62ffa
Date: 2014-05-14 16:16 +0200
http://bitbucket.org/pypy/pypy/changeset/da5833a62ffa/
Log: added failing test that shouldn't fail.
diff --git a/rpython/memory/gc/test/test_object_pinning.py
b/rpython/memory/gc/test/test_object_pinning.py
--- a/rpython/memory/gc/test/test_object_pinning.py
+++ b/rpython/memory/gc/test/test_object_pinning.py
@@ -97,6 +97,24 @@
# ^^^ should not be possible, struct is already old and won't
# move.
+ def test_pin_malloc_pin(self):
+ first_ptr = self.malloc(S)
+ first_ptr.someInt = 101
+ self.stackroots.append(first_ptr)
+ assert self.gc.pin(llmemory.cast_ptr_to_adr(first_ptr))
+
+ self.gc.collect()
+ assert first_ptr.someInt == 101
+
+ second_ptr = self.malloc(S)
+ second_ptr.someInt = 102
+ self.stackroots.append(second_ptr)
+ assert self.gc.pin(llmemory.cast_ptr_to_adr(second_ptr))
+
+ self.gc.collect()
+ assert first_ptr.someInt == 101
+ assert second_ptr.someInt == 102
+
# XXX test/define what happens if we try to pin an object that is too
# big for the nursery and will be raw-malloc'ed.
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit