Author: Alex Gaynor <[email protected]>
Branch: kill-someobject
Changeset: r57880:0e6f30e1005b
Date: 2012-10-08 10:18 +0200
http://bitbucket.org/pypy/pypy/changeset/0e6f30e1005b/
Log: Cleaned up test_newgc
diff --git a/pypy/translator/c/test/test_newgc.py
b/pypy/translator/c/test/test_newgc.py
--- a/pypy/translator/c/test/test_newgc.py
+++ b/pypy/translator/c/test/test_newgc.py
@@ -1,17 +1,20 @@
+import gc
+import inspect
+import os
+import sys
+
import py
-import sys, os, inspect
-from pypy.objspace.flow.model import summary
-from pypy.rpython.lltypesystem import lltype, llmemory
+from pypy import conftest
+from pypy.rlib import rgc
+from pypy.rlib.objectmodel import keepalive_until_here, compute_hash,
compute_identity_hash
+from pypy.rlib.rstring import StringBuilder
+from pypy.rpython.lltypesystem import lltype, llmemory, rffi
from pypy.rpython.lltypesystem.lloperation import llop
from pypy.rpython.memory.test import snippet
-from pypy.rlib import rgc
-from pypy.rlib.objectmodel import keepalive_until_here
-from pypy.rlib.rstring import StringBuilder, UnicodeBuilder
from pypy.tool.udir import udir
from pypy.translator.interactive import Translation
-from pypy.annotation import policy as annpolicy
-from pypy import conftest
+
class TestUsingFramework(object):
gcpolicy = "marksweep"
@@ -57,7 +60,6 @@
return run
-
def setup_class(cls):
funcs0 = []
funcs1 = []
@@ -74,12 +76,12 @@
prefix, name = fullname.split('_', 1)
definefunc = getattr(cls, fullname)
func = definefunc.im_func(cls)
- func.func_name = 'f_'+name
+ func.func_name = 'f_' + name
if prefix == 'definestr':
funcsstr.append(func)
funcs0.append(None)
funcs1.append(None)
- else:
+ else:
numargs = len(inspect.getargspec(func)[0])
funcsstr.append(None)
if numargs == 0:
@@ -91,6 +93,7 @@
funcs1.append(func)
assert name not in name_to_func
name_to_func[name] = len(name_to_func)
+
def allfuncs(name, arg):
num = name_to_func[name]
func0 = funcs0[num]
@@ -236,10 +239,10 @@
a[j] = lltype.malloc(T)
a[j].y = i
a[j].s = lltype.malloc(S)
- a[j].s.x = 2*i
+ a[j].s.x = 2 * i
r += a[j].y + a[j].s.x
a[j].s = lltype.malloc(S)
- a[j].s.x = 3*i
+ a[j].s.x = 3 * i
r -= a[j].s.x
for j in range(i):
r += a[j].y
@@ -269,7 +272,7 @@
def test_framework_using_lists(self):
N = 1000
res = self.run('framework_using_lists')
- assert res == N*(N - 1)/2
+ assert res == N * (N - 1) / 2
def define_framework_static_roots(cls):
class A(object):
@@ -318,10 +321,9 @@
res = self.run('framework_void_array')
assert res == 44
-
def define_framework_malloc_failure(cls):
def f():
- a = [1] * (sys.maxint//2)
+ a = [1] * (sys.maxint // 2)
return len(a) + a[0]
return f
@@ -397,7 +399,6 @@
assert res == 6
def define_del_catches(cls):
- import os
def g():
pass
class A(object):
@@ -442,7 +443,6 @@
def define_custom_trace(cls):
from pypy.rpython.annlowlevel import llhelper
- from pypy.rpython.lltypesystem import llmemory
#
S = lltype.GcStruct('S', ('x', llmemory.Address), rtti=True)
offset_of_x = llmemory.offsetof(S, 'x')
@@ -530,9 +530,9 @@
a = refs[i]()
rgc.collect()
if a is None:
- result += (i+1)
+ result += (i + 1)
else:
- result += a.hello * (i+1)
+ result += a.hello * (i + 1)
return result
return fn
@@ -624,7 +624,7 @@
res = self.run('object_alignment')
from pypy.rpython.tool import rffi_platform
expected_alignment = rffi_platform.memory_alignment()
- assert (res & (expected_alignment-1)) == 0
+ assert (res & (expected_alignment - 1)) == 0
def define_void_list(cls):
class E:
@@ -664,8 +664,6 @@
def define_callback_with_collect(cls):
from pypy.rlib.clibffi import ffi_type_pointer, cast_type_to_ffitype,\
CDLL, ffi_type_void, CallbackFuncPtr, ffi_type_sint
- from pypy.rpython.lltypesystem import rffi, ll2ctypes
- import gc
ffi_size_t = cast_type_to_ffitype(rffi.SIZE_T)
from pypy.rlib.clibffi import get_libc_name
@@ -702,7 +700,7 @@
qsort.push_arg(rffi.cast(rffi.SIZE_T, rffi.sizeof(lltype.Signed)))
qsort.push_arg(rffi.cast(rffi.VOIDP, ptr.ll_closure))
qsort.call(lltype.Void)
- result = [to_sort[i] for i in range(4)] == [1,2,3,4]
+ result = [to_sort[i] for i in range(4)] == [1, 2, 3, 4]
lltype.free(to_sort, flavor='raw')
keepalive_until_here(ptr)
return int(result)
@@ -732,7 +730,7 @@
assert not rgc.can_move(a)
return 1
return 0
- except Exception, e:
+ except Exception:
return 2
return func
@@ -767,9 +765,6 @@
assert res == expected
def define_hash_preservation(cls):
- from pypy.rlib.objectmodel import compute_hash
- from pypy.rlib.objectmodel import compute_identity_hash
- from pypy.rlib.objectmodel import current_object_addr_as_int
class C:
pass
class D(C):
@@ -784,17 +779,23 @@
h_s = compute_identity_hash(s) # varsized: hash not saved/restored
#
def f():
- if compute_hash(c) != compute_identity_hash(c): return 12
- if compute_hash(d) != h_d: return 13
- if compute_hash(("Hi", None, (7.5, 2, d))) != h_t: return 14
+ if compute_hash(c) != compute_identity_hash(c):
+ return 12
+ if compute_hash(d) != h_d:
+ return 13
+ if compute_hash(("Hi", None, (7.5, 2, d))) != h_t:
+ return 14
c2 = C()
h_c2 = compute_hash(c2)
- if compute_hash(c2) != h_c2: return 15
- if compute_identity_hash(s) == h_s: return 16 # unlikely
+ if compute_hash(c2) != h_c2:
+ return 15
+ if compute_identity_hash(s) == h_s:
+ return 16 # unlikely
i = 0
while i < 6:
rgc.collect()
- if compute_hash(c2) != h_c2: return i
+ if compute_hash(c2) != h_c2:
+ return i
i += 1
return 42
return f
@@ -804,7 +805,6 @@
assert res == 42
def define_hash_overflow(self):
- from pypy.rlib.objectmodel import compute_identity_hash
class X(object):
pass
@@ -848,16 +848,16 @@
build(x1, n) # can collect!
check(x1, n, 1)
build(x3, 3)
- x2 = g(n//2) # allocate more and try again
- build(x2, n//2)
+ x2 = g(n // 2) # allocate more and try again
+ build(x2, n // 2)
check(x1, n, 11)
- check(x2, n//2, 12)
+ check(x2, n // 2, 12)
build(x4, 3)
check(x3, 3, 13) # check these old objects too
check(x4, 3, 14) # check these old objects too
rgc.collect()
check(x1, n, 21)
- check(x2, n//2, 22)
+ check(x2, n // 2, 22)
check(x3, 3, 23)
check(x4, 3, 24)
@@ -890,7 +890,6 @@
res = self.run('hash_varsized')
assert res != 0
-
def define_arraycopy_writebarrier_int(cls):
TP = lltype.GcArray(lltype.Signed)
S = lltype.GcStruct('S')
@@ -1062,10 +1061,10 @@
assert 8 <= int1 <= 32
gcref2 = lltype.cast_opaque_ptr(llmemory.GCREF, s.u)
int2 = rgc.get_rpy_memory_usage(gcref2)
- assert 4*9 <= int2 <= 8*12
+ assert 4 * 9 <= int2 <= 8 * 12
gcref3 = lltype.cast_opaque_ptr(llmemory.GCREF, a)
int3 = rgc.get_rpy_memory_usage(gcref3)
- assert 4*1001 <= int3 <= 8*1010
+ assert 4 * 1001 <= int3 <= 8 * 1010
return 0
return fn
@@ -1234,7 +1233,7 @@
# the semispace size starts at 8MB for now, so setting a
# smaller limit has no effect
# set to more than 32MB -- which should be rounded down to 32MB
- rgc.set_max_heap_size(32*1024*1024 + 20000)
+ rgc.set_max_heap_size(32 * 1024 * 1024 + 20000)
s1 = s2 = s3 = None
try:
s1 = g(400000) # ~ 400 KB
@@ -1299,7 +1298,6 @@
assert res == "aabcbdddd"
def definestr_string_builder_over_allocation(cls):
- import gc
def fn(_):
s = StringBuilder(4)
s.append("abcd")
@@ -1318,7 +1316,6 @@
assert res[1000] == 'y'
def definestr_string_builder_multiple_builds(cls):
- import gc
def fn(_):
s = StringBuilder(4)
got = []
@@ -1335,7 +1332,6 @@
for length in range(1, 51)])
def define_nursery_hash_base(cls):
- from pypy.rlib.objectmodel import compute_identity_hash
class A:
pass
def fn():
@@ -1362,6 +1358,7 @@
gcpolicy = "generation"
should_be_moving = True
+
class TestHybridGC(TestGenerationalGC):
gcpolicy = "hybrid"
should_be_moving = True
@@ -1371,7 +1368,6 @@
py.test.skip("not implemented")
-
class TestHybridGCRemoveTypePtr(TestHybridGC):
removetypeptr = True
@@ -1436,6 +1432,7 @@
res = self.run("adding_a_hash")
assert res == 0
+
class TestMiniMarkGC(TestSemiSpaceGC):
gcpolicy = "minimark"
should_be_moving = True
@@ -1466,7 +1463,7 @@
am3 = am2
am2 = am1
am1 = A(i * 4)
- am1.buf[0] = rffi.cast(rffi.INT, i-50000)
+ am1.buf[0] = rffi.cast(rffi.INT, i - 50000)
return res
return f
@@ -1477,7 +1474,6 @@
def define_nongc_opaque_attached_to_gc(cls):
from pypy.module._hashlib.interp_hashlib import HASH_MALLOC_SIZE
from pypy.rlib import rgc, ropenssl
- from pypy.rpython.lltypesystem import rffi
class A:
def __init__(self):
@@ -1594,8 +1590,10 @@
class TestHybridTaggedPointers(TaggedPointersTest, TestHybridGC):
pass
+
class TestMarkCompactGCMostCompact(TaggedPointersTest, TestMarkCompactGC):
removetypeptr = True
+
class TestMiniMarkGCMostCompact(TaggedPointersTest, TestMiniMarkGC):
removetypeptr = True
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit