Author: wenzhuman <manwen...@gmail.com>
Branch: gc_no_cleanup_nursery
Changeset: r72416:a99dec1483ec
Date: 2014-07-10 22:55 +0000
http://bitbucket.org/pypy/pypy/changeset/a99dec1483ec/

Log:    and test case for no clean up nursery

diff --git a/rpython/memory/gc/test/test_direct.py 
b/rpython/memory/gc/test/test_direct.py
--- a/rpython/memory/gc/test/test_direct.py
+++ b/rpython/memory/gc/test/test_direct.py
@@ -11,7 +11,7 @@
 from rpython.memory.gctypelayout import TypeLayoutBuilder
 from rpython.rlib.rarithmetic import LONG_BIT, is_valid_int
 from rpython.memory.gc import minimark, incminimark
-from rpython.memory.gctypelayout import zero_gc_pointers, 
zero_gc_pointers_inside
+from rpython.memory.gctypelayout import zero_gc_pointers_inside
 WORD = LONG_BIT // 8
 
 ADDR_ARRAY = lltype.Array(llmemory.Address)
@@ -108,12 +108,13 @@
         addr = self.gc.malloc(self.get_type_id(TYPE), n, zero=True)
         obj_ptr = llmemory.cast_adr_to_ptr(addr, lltype.Ptr(TYPE))
         #TODO: only zero fields if there is gc filed add something like 
has_gc_ptr()
-        zero_gc_pointers_inside(obj_ptr, TYPE)
+        if not self.gc.malloc_zero_filled:
+            zero_gc_pointers_inside(obj_ptr, TYPE)
         return obj_ptr
 
 
 class DirectGCTest(BaseDirectGCTest):
-
+    
     def test_simple(self):
         p = self.malloc(S)
         p.x = 5
@@ -666,3 +667,9 @@
 
 class TestIncrementalMiniMarkGCFull(DirectGCTest):
     from rpython.memory.gc.incminimark import IncrementalMiniMarkGC as GCClass
+    def test_no_cleanup(self):
+        p = self.malloc(S)
+        import pytest
+        with pytest.raises(lltype.UninitializedMemoryAccess):
+            x1 = p.x
+        
\ No newline at end of file
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to