Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60446:009a70442a4b
Date: 2013-01-25 14:06 +0200
http://bitbucket.org/pypy/pypy/changeset/009a70442a4b/

Log:    reshuffle tests to make them run faster and more in parallel

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,8 +5,7 @@
 """
 
 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.rlib.jit import JitDriver, dont_look_inside
@@ -14,6 +13,9 @@
 from rpython.jit.backend.llsupport.gc import GcLLDescr_framework
 from rpython.tool.udir import udir
 from rpython.config.translationoption import DEFL_GC
+from rpython.rlib.libffi import CDLL, types, ArgChain, clibffi
+from rpython.rtyper.annlowlevel import llhelper
+from rpython.rtyper.lltypesystem.ll2ctypes import libc_name
 
 class X(object):
     def __init__(self, x=0):
@@ -151,7 +153,6 @@
 
 
 class BaseFrameworkTests(object):
-    compile_kwds = {}
 
     def setup_class(cls):
         funcs = []
@@ -203,7 +204,7 @@
             GcLLDescr_framework.DEBUG = True
             cls.cbuilder = compile(get_entry(allfuncs), DEFL_GC,
                                    gcrootfinder=cls.gcrootfinder, jit=True,
-                                   **cls.compile_kwds)
+                                   thread=True)
         finally:
             GcLLDescr_framework.DEBUG = OLD_DEBUG
 
@@ -789,9 +790,94 @@
     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"
-
-class TestAsmGcc(CompileFrameworkTests):
-    gcrootfinder = "asmgcc"
diff --git a/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py 
b/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py
new file mode 100644
--- /dev/null
+++ b/rpython/jit/backend/x86/test/test_zrpy_gcasmgcc.py
@@ -0,0 +1,5 @@
+
+from rpython.jit.backend.x86.test.test_zrpy_gc import CompileFrameworkTests
+
+class TestAsmGcc(CompileFrameworkTests):
+    gcrootfinder = "asmgcc"
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
@@ -13,95 +13,6 @@
 class ReleaseGILTests(BaseFrameworkTests):
     compile_kwds = dict(enable_opts=ALL_OPTS_NAMES, thread=True)
 
-    def define_simple(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(self):
-        self.run('simple')
-
-    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(ReleaseGILTests):
     gcrootfinder = "shadowstack"
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to