Author: wenzhuman <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit