[pypy-svn] r74870 - in pypy/branch/fast-ctypes/pypy/module/jitffi: . test

getxsick at codespeak.net getxsick at codespeak.net
Fri May 28 20:14:10 CEST 2010


Author: getxsick
Date: Fri May 28 20:14:06 2010
New Revision: 74870

Added:
   pypy/branch/fast-ctypes/pypy/module/jitffi/   (props changed)
   pypy/branch/fast-ctypes/pypy/module/jitffi/__init__.py   (contents, props changed)
   pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py
   pypy/branch/fast-ctypes/pypy/module/jitffi/test/   (props changed)
   pypy/branch/fast-ctypes/pypy/module/jitffi/test/__init__.py   (contents, props changed)
   pypy/branch/fast-ctypes/pypy/module/jitffi/test/test_jitffi.py   (contents, props changed)
Log:
just some init checkin. nothing worth to look yet.


Added: pypy/branch/fast-ctypes/pypy/module/jitffi/__init__.py
==============================================================================
--- (empty file)
+++ pypy/branch/fast-ctypes/pypy/module/jitffi/__init__.py	Fri May 28 20:14:06 2010
@@ -0,0 +1,8 @@
+from pypy.interpreter.mixedmodule import MixedModule
+
+class Module(MixedModule):
+    interpleveldefs = {
+        'load' : 'interp_jitffi.W_load',
+    }
+
+    appleveldefs = {}

Added: pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py
==============================================================================
--- (empty file)
+++ pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py	Fri May 28 20:14:06 2010
@@ -0,0 +1,4 @@
+from pypy.interpreter.baseobjspace import Wrappable
+
+class W_load(Wrappable):
+    pass

Added: pypy/branch/fast-ctypes/pypy/module/jitffi/test/__init__.py
==============================================================================

Added: pypy/branch/fast-ctypes/pypy/module/jitffi/test/test_jitffi.py
==============================================================================
--- (empty file)
+++ pypy/branch/fast-ctypes/pypy/module/jitffi/test/test_jitffi.py	Fri May 28 20:14:06 2010
@@ -0,0 +1,35 @@
+from pypy.conftest import gettestobjspace
+from pypy.translator.tool.cbuild import ExternalCompilationInfo
+from pypy.translator.platform import platform
+
+import py
+
+class AppTestJitffi(object):
+    @staticmethod
+    def preprare_c_example():
+        from pypy.tool.udir import udir
+        c_file = udir.ensure("test_jitffi", dir=True).join("xlib.c")
+        c_file.write(py.code.Source('''
+        int add_integers(int a, int b)
+        {
+           return a+b;
+        }
+        '''))
+
+        symbols = ["sum"]
+        eci = ExternalCompilationInfo(export_symbols=symbols)
+
+        return str(platform.compile([c_file], eci, 'x', standalone=False))
+
+    def setup_class(cls):
+        from pypy.rlib.libffi import get_libc_name
+        space = gettestobjspace(usemodules=('jitffi',))
+        cls.space = space
+        cls.w_lib_name = space.wrap(cls.preprare_c_example())
+        cls.w_libc_name = space.wrap(get_libc_name())
+
+    def test_raw_callable(self):
+        import jitffi
+        lib = jitffi.load(self.lib_name)
+        res = lib.call('add_integers', 1, 2)
+        assert res == 3



More information about the Pypy-commit mailing list