Author: Maciej Fijalkowski <[email protected]>
Branch:
Changeset: r61527:7ef29ceaae85
Date: 2013-02-21 11:40 +0200
http://bitbucket.org/pypy/pypy/changeset/7ef29ceaae85/
Log: try to make those tests actually test anything
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
@@ -5,10 +5,9 @@
"""
import weakref
-import py, os
-from rpython.annotator import policy as annpolicy
+import os
from rpython.rlib import rgc
-from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
+from rpython.rtyper.lltypesystem import lltype
from rpython.rlib.jit import JitDriver, dont_look_inside
from rpython.rlib.jit import elidable, unroll_safe
from rpython.jit.backend.llsupport.gc import GcLLDescr_framework
diff --git a/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
b/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
--- a/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
+++ b/rpython/jit/backend/x86/test/test_zrpy_releasegil.py
@@ -1,13 +1,13 @@
from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
from rpython.rlib.jit import dont_look_inside
+from rpython.rlib.objectmodel import invoke_around_extcall
from rpython.jit.metainterp.optimizeopt import ALL_OPTS_NAMES
-from rpython.rlib.libffi import CDLL, types, ArgChain, clibffi
-from rpython.rtyper.lltypesystem.ll2ctypes import libc_name
from rpython.rtyper.annlowlevel import llhelper
from rpython.jit.backend.x86.test.test_zrpy_gc import BaseFrameworkTests
from rpython.jit.backend.x86.test.test_zrpy_gc import check
+from rpython.tool.udir import udir
class ReleaseGILTests(BaseFrameworkTests):
@@ -15,35 +15,33 @@
def define_simple(self):
class Glob:
- pass
+ def __init__(self):
+ self.events = []
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)
- #
+
+ c_strchr = rffi.llexternal('strchr', [rffi.CCHARP, lltype.Signed],
+ rffi.CCHARP)
+
+ def func():
+ glob.events.append("x")
+
def before(n, x):
- libc = CDLL(libc_name)
- c_strchr = libc.getpointer('strchr', [types.pointer, types.sint],
- types.pointer)
- glob.c_strchr = c_strchr
+ invoke_around_extcall(func, func)
return (n, None, None, None, None, None,
None, None, None, None, None, None)
#
def f(n, x, *args):
- f42(n)
+ a = rffi.str2charp(str(n))
+ c_strchr(a, ord('0'))
+ lltype.free(a, flavor='raw')
n -= 1
return (n, x) + args
return before, f, None
def test_simple(self):
self.run('simple')
+ assert 'call_release_gil' in udir.join('test_zrpy_gc.log').read()
def define_close_stack(self):
#
@@ -66,30 +64,23 @@
@dont_look_inside
def free1(p):
llmemory.raw_free(p)
+
+ c_qsort = rffi.llexternal('qsort', [rffi.VOIDP, rffi.SIZE_T,
+ rffi.SIZE_T, CALLBACK],
lltype.Void)
#
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)
+ c_qsort(rffi.cast(rffi.VOIDP, raw), rffi.cast(rffi.SIZE_T, 2),
+ rffi.cast(rffi.SIZE_T, 8), fn)
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)
#
@@ -101,6 +92,7 @@
def test_close_stack(self):
self.run('close_stack')
+ assert 'call_release_gil' in udir.join('test_zrpy_gc.log').read()
class TestShadowStack(ReleaseGILTests):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit