Author: Gregor Wegberg <[email protected]>
Branch: gc-incminimark-pinning
Changeset: r72530:2b62d7537a85
Date: 2014-07-26 15:46 +0200
http://bitbucket.org/pypy/pypy/changeset/2b62d7537a85/

Log:    shadow tests now tested with minor and full major collections.

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
@@ -224,36 +224,48 @@
         assert first_ptr.someInt == 101
         assert second_ptr.someInt == 102
 
-    def test_pin_shadow_1(self):
+    def pin_shadow_1(self, collect_func):
         ptr = self.malloc(S)
         adr = llmemory.cast_ptr_to_adr(ptr)
         self.stackroots.append(ptr)
         ptr.someInt = 100
         assert self.gc.pin(adr)
         self.gc.id(ptr) # allocate shadow
-        self.gc.collect()
+        collect_func()
         assert self.gc.is_in_nursery(adr)
         assert ptr.someInt == 100
         self.gc.unpin(adr)
-        self.gc.collect() # move to shadow
+        collect_func() # move to shadow
         adr = llmemory.cast_ptr_to_adr(self.stackroots[0])
         assert not self.gc.is_in_nursery(adr)
 
-    def test_pin_shadow_2(self):
+    def test_pin_shadow_1_minor(self):
+        self.pin_shadow_1(self.gc.minor_collection)
+
+    def test_pin_shadow_1_full(self):
+        self.pin_shadow_1(self.gc.collect)
+
+    def pin_shadow_2(self, collect_func):
         ptr = self.malloc(S)
         adr = llmemory.cast_ptr_to_adr(ptr)
         self.stackroots.append(ptr)
         ptr.someInt = 100
         assert self.gc.pin(adr)
         self.gc.identityhash(ptr) # allocate shadow
-        self.gc.collect()
+        collect_func()
         assert self.gc.is_in_nursery(adr)
         assert ptr.someInt == 100
         self.gc.unpin(adr)
-        self.gc.collect() # move to shadow
+        collect_func() # move to shadow
         adr = llmemory.cast_ptr_to_adr(self.stackroots[0])
         assert not self.gc.is_in_nursery(adr)
 
+    def test_pin_shadow_2_minor(self):
+        self.pin_shadow_2(self.gc.minor_collection)
+
+    def test_pin_shadow_2_full(self):
+        self.pin_shadow_2(self.gc.collect)
+
     def test_pin_nursery_top_scenario1(self):
         ptr1 = self.malloc(S)
         adr1 = llmemory.cast_ptr_to_adr(ptr1)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to