Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60455:a84a39aa0758
Date: 2013-01-25 17:47 +0200
http://bitbucket.org/pypy/pypy/changeset/a84a39aa0758/
Log: write a failing test and remove tests that don't test anything
(especially not what they advertise to test)
diff --git a/rpython/jit/backend/x86/test/test_gc_integration.py
b/rpython/jit/backend/x86/test/test_gc_integration.py
--- a/rpython/jit/backend/x86/test/test_gc_integration.py
+++ b/rpython/jit/backend/x86/test/test_gc_integration.py
@@ -397,7 +397,8 @@
self.nursery_ptrs[1] = self.nursery_ptrs[0] + nursery_size
self.nursery_addr = rffi.cast(lltype.Signed, self.nursery_ptrs)
self.all_nurseries.append(self.nursery)
- self.collections.reverse()
+ if hasattr(self, 'collections'):
+ self.collections.reverse()
def _collect(self):
gcmap = unpack_gcmap(self.frames[-1])
@@ -571,10 +572,20 @@
def f(x):
import pdb
pdb.set_trace()
-
+
+ FUNC = lltype.FuncType([lltype.Float], lltype.Float)
+ fptr = llhelper(lltype.Ptr(FUNC), f)
+ calldescr = cpu.calldescrof(FUNC, FUNC.ARGS, FUNC.RESULT,
+ EffectInfo.MOST_GENERAL)
loop = self.parse("""
[f0]
f1 = call_release_gil(ConstClass(fptr), f0, descr=calldescr)
+ guard_not_forced(descr=faildescr) []
finish(f1)
- """, namespace={
- })
+ """, namespace={'fptr': fptr, 'calldescr':calldescr,
+ 'faildescr': BasicFailDescr()})
+ token = JitCellToken()
+ cpu.gc_ll_descr.init_nursery(100)
+ cpu.setup_once()
+ cpu.compile_loop(loop.inputargs, loop.operations, token)
+ cpu.execute_token(token, 1.3)
diff --git a/rpython/jit/backend/x86/test/test_zrpy_gc.py
b/rpython/jit/backend/x86/test/test_zrpy_gc.py
--- a/rpython/jit/backend/x86/test/test_zrpy_gc.py
+++ b/rpython/jit/backend/x86/test/test_zrpy_gc.py
@@ -790,94 +790,5 @@
def test_compile_framework_minimal_size_in_nursery(self):
self.run('compile_framework_minimal_size_in_nursery')
- def define_simple_call_release_gil(self):
- class Glob:
- pass
- glob = Glob()
- #
- def f42(n):
- c_strchr = glob.c_strchr
- raw = rffi.str2charp("foobar" + chr((n & 63) + 32))
- argchain = ArgChain()
- argchain = argchain.arg(rffi.cast(lltype.Signed, raw))
- argchain = argchain.arg(rffi.cast(rffi.INT, ord('b')))
- res = c_strchr.call(argchain, rffi.CCHARP)
- check(rffi.charp2str(res) == "bar" + chr((n & 63) + 32))
- rffi.free_charp(raw)
- #
- def before(n, x):
- libc = CDLL(libc_name)
- c_strchr = libc.getpointer('strchr', [types.pointer, types.sint],
- types.pointer)
- glob.c_strchr = c_strchr
- return (n, None, None, None, None, None,
- None, None, None, None, None, None)
- #
- def f(n, x, *args):
- f42(n)
- n -= 1
- return (n, x) + args
- return before, f, None
-
- def test_simple_call_release_gil(self):
- self.run('simple_call_release_gil')
-
- def define_close_stack(self):
- #
- class Glob(object):
- pass
- glob = Glob()
- class X(object):
- pass
- #
- def callback(p1, p2):
- for i in range(100):
- glob.lst.append(X())
- return rffi.cast(rffi.INT, 1)
- CALLBACK = lltype.Ptr(lltype.FuncType([lltype.Signed,
- lltype.Signed], rffi.INT))
- #
- @dont_look_inside
- def alloc1():
- return llmemory.raw_malloc(16)
- @dont_look_inside
- def free1(p):
- llmemory.raw_free(p)
- #
- def f42():
- length = len(glob.lst)
- c_qsort = glob.c_qsort
- raw = alloc1()
- fn = llhelper(CALLBACK, rffi._make_wrapper_for(CALLBACK, callback))
- argchain = ArgChain()
- argchain = argchain.arg(rffi.cast(lltype.Signed, raw))
- argchain = argchain.arg(rffi.cast(rffi.SIZE_T, 2))
- argchain = argchain.arg(rffi.cast(rffi.SIZE_T, 8))
- argchain = argchain.arg(rffi.cast(lltype.Signed, fn))
- c_qsort.call(argchain, lltype.Void)
- free1(raw)
- check(len(glob.lst) > length)
- del glob.lst[:]
- #
- def before(n, x):
- libc = CDLL(libc_name)
- types_size_t = clibffi.cast_type_to_ffitype(rffi.SIZE_T)
- c_qsort = libc.getpointer('qsort', [types.pointer, types_size_t,
- types_size_t, types.pointer],
- types.void)
- glob.c_qsort = c_qsort
- glob.lst = []
- return (n, None, None, None, None, None,
- None, None, None, None, None, None)
- #
- def f(n, x, *args):
- f42()
- n -= 1
- return (n, x) + args
- return before, f, None
-
- def test_close_stack(self):
- self.run('close_stack')
-
class TestShadowStack(CompileFrameworkTests):
gcrootfinder = "shadowstack"
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit