[pypy-commit] cffi split-verify: Port setuptools tests to FFIBuilder
stefanor
noreply at buildbot.pypy.org
Mon Oct 7 01:51:31 CEST 2013
Author: Stefano Rivera <stefano at rivera.za.net>
Branch: split-verify
Changeset: r1370:49b84f34cf9c
Date: 2013-10-07 01:51 +0200
http://bitbucket.org/cffi/cffi/changeset/49b84f34cf9c/
Log: Port setuptools tests to FFIBuilder
diff --git a/testing/snippets/setuptools_module/ffibuilder.py b/testing/snippets/setuptools_module/ffibuilder.py
new file mode 100644
--- /dev/null
+++ b/testing/snippets/setuptools_module/ffibuilder.py
@@ -0,0 +1,21 @@
+import sys
+
+from cffi import FFIBuilder
+
+
+def build_ffi(path):
+ builder = FFIBuilder('snip_setuptools_module', path)
+ builder.cdef(""" // some declarations from the man page
+ struct passwd {
+ char *pw_name;
+ ...;
+ };
+ struct passwd *getpwuid(int uid);
+ """)
+ builder.makelib('passwd', """ // passed to the real C compiler
+ #include <sys/types.h>
+ #include <pwd.h>
+ """, libraries=[], # or a list of libraries to link with
+ force_generic_engine=hasattr(sys, '_force_generic_engine_'))
+ builder.write_ffi_module()
+ return builder.list_built_files()
diff --git a/testing/snippets/setuptools_module/setup.py b/testing/snippets/setuptools_module/setup.py
--- a/testing/snippets/setuptools_module/setup.py
+++ b/testing/snippets/setuptools_module/setup.py
@@ -1,8 +1,12 @@
+from setuptools import setup
-from setuptools import setup
-import snip_setuptools_verify
+from cffi.packaging import FFIExtension, build_ext
+
+import ffibuilder
+
setup(
- zip_safe=False,
- py_modules=['snip_setuptools_verify'],
- ext_modules=[snip_setuptools_verify.ffi.verifier.get_extension()])
+ data_files=['ffibuilder.py'],
+ ext_modules=[FFIExtension(ffibuilder.build_ffi)],
+ cmdclass={'build_ext': build_ext},
+)
diff --git a/testing/snippets/setuptools_module/snip_setuptools_verify.py b/testing/snippets/setuptools_module/snip_setuptools_verify.py
deleted file mode 100644
--- a/testing/snippets/setuptools_module/snip_setuptools_verify.py
+++ /dev/null
@@ -1,17 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef(""" // some declarations from the man page
- struct passwd {
- char *pw_name;
- ...;
- };
- struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify(""" // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[], # or a list of libraries to link with
- force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff --git a/testing/snippets/setuptools_package_1/setup.py b/testing/snippets/setuptools_package_1/setup.py
--- a/testing/snippets/setuptools_package_1/setup.py
+++ b/testing/snippets/setuptools_package_1/setup.py
@@ -1,8 +1,11 @@
+from setuptools import setup
-from setuptools import setup
-import snip_setuptools_verify1
+from cffi.packaging import FFIExtension, build_ext
+
+import snip_setuptools_module1.ffibuilder
setup(
- zip_safe=False,
- packages=['snip_setuptools_verify1'],
- ext_modules=[snip_setuptools_verify1.ffi.verifier.get_extension()])
+ packages=['snip_setuptools_module1'],
+ ext_modules=[FFIExtension(snip_setuptools_module1.ffibuilder.build_ffi)],
+ cmdclass={'build_ext': build_ext},
+)
diff --git a/testing/snippets/setuptools_package_1/snip_setuptools_module1/__init__.py b/testing/snippets/setuptools_package_1/snip_setuptools_module1/__init__.py
new file mode 100644
diff --git a/testing/snippets/setuptools_package_1/snip_setuptools_module1/ffibuilder.py b/testing/snippets/setuptools_package_1/snip_setuptools_module1/ffibuilder.py
new file mode 100644
--- /dev/null
+++ b/testing/snippets/setuptools_package_1/snip_setuptools_module1/ffibuilder.py
@@ -0,0 +1,21 @@
+import sys
+
+from cffi import FFIBuilder
+
+
+def build_ffi(path):
+ builder = FFIBuilder('snip_setuptools_module1._ffi', path)
+ builder.cdef(""" // some declarations from the man page
+ struct passwd {
+ char *pw_name;
+ ...;
+ };
+ struct passwd *getpwuid(int uid);
+ """)
+ builder.makelib('passwd', """ // passed to the real C compiler
+ #include <sys/types.h>
+ #include <pwd.h>
+ """, libraries=[], # or a list of libraries to link with
+ force_generic_engine=hasattr(sys, '_force_generic_engine_'))
+ builder.write_ffi_module()
+ return builder.list_built_files()
diff --git a/testing/snippets/setuptools_package_1/snip_setuptools_verify1/__init__.py b/testing/snippets/setuptools_package_1/snip_setuptools_verify1/__init__.py
deleted file mode 100644
--- a/testing/snippets/setuptools_package_1/snip_setuptools_verify1/__init__.py
+++ /dev/null
@@ -1,17 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef(""" // some declarations from the man page
- struct passwd {
- char *pw_name;
- ...;
- };
- struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify(""" // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[], # or a list of libraries to link with
- force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff --git a/testing/snippets/setuptools_package_2/setup.py b/testing/snippets/setuptools_package_2/setup.py
--- a/testing/snippets/setuptools_package_2/setup.py
+++ b/testing/snippets/setuptools_package_2/setup.py
@@ -1,9 +1,13 @@
+from setuptools import setup
-from setuptools import setup
-import snip_setuptools_verify2
+from cffi.packaging import FFIExtension, build_ext
+
+import snip_setuptools_module2.ffibuilder
+
setup(
- zip_safe=False,
- packages=['snip_setuptools_verify2'],
- ext_package='snip_setuptools_verify2',
- ext_modules=[snip_setuptools_verify2.ffi.verifier.get_extension()])
+ packages=['snip_setuptools_module2'],
+ ext_package='snip_setuptools_module2',
+ ext_modules=[FFIExtension(snip_setuptools_module2.ffibuilder.build_ffi)],
+ cmdclass={'build_ext': build_ext},
+)
diff --git a/testing/snippets/setuptools_package_2/snip_setuptools_module2/__init__.py b/testing/snippets/setuptools_package_2/snip_setuptools_module2/__init__.py
new file mode 100644
diff --git a/testing/snippets/setuptools_package_2/snip_setuptools_module2/ffibuilder.py b/testing/snippets/setuptools_package_2/snip_setuptools_module2/ffibuilder.py
new file mode 100644
--- /dev/null
+++ b/testing/snippets/setuptools_package_2/snip_setuptools_module2/ffibuilder.py
@@ -0,0 +1,21 @@
+import sys
+
+from cffi import FFIBuilder
+
+
+def build_ffi(path):
+ builder = FFIBuilder('_ffi', path)
+ builder.cdef(""" // some declarations from the man page
+ struct passwd {
+ char *pw_name;
+ ...;
+ };
+ struct passwd *getpwuid(int uid);
+ """)
+ builder.makelib('passwd', """ // passed to the real C compiler
+ #include <sys/types.h>
+ #include <pwd.h>
+ """, libraries=[], # or a list of libraries to link with
+ force_generic_engine=hasattr(sys, '_force_generic_engine_'))
+ builder.write_ffi_module()
+ return builder.list_built_files()
diff --git a/testing/snippets/setuptools_package_2/snip_setuptools_verify2/__init__.py b/testing/snippets/setuptools_package_2/snip_setuptools_verify2/__init__.py
deleted file mode 100644
--- a/testing/snippets/setuptools_package_2/snip_setuptools_verify2/__init__.py
+++ /dev/null
@@ -1,18 +0,0 @@
-
-from cffi import FFI
-import sys
-
-ffi = FFI()
-ffi.cdef(""" // some declarations from the man page
- struct passwd {
- char *pw_name;
- ...;
- };
- struct passwd *getpwuid(int uid);
-""")
-C = ffi.verify(""" // passed to the real C compiler
-#include <sys/types.h>
-#include <pwd.h>
-""", libraries=[], # or a list of libraries to link with
- ext_package='snip_setuptools_verify2',
- force_generic_engine=hasattr(sys, '_force_generic_engine_'))
diff --git a/testing/test_zintegration.py b/testing/test_zintegration.py
--- a/testing/test_zintegration.py
+++ b/testing/test_zintegration.py
@@ -116,21 +116,24 @@
def test_setuptools_module():
run_setup_and_program("setuptools_module", '''
- import snip_setuptools_verify
- p = snip_setuptools_verify.C.getpwuid(0)
- assert snip_setuptools_verify.ffi.string(p.pw_name) == b"root"
+ import snip_setuptools_module as _ffi
+ lib = _ffi.load_passwd()
+ p = lib.getpwuid(0)
+ assert _ffi.string(p.pw_name) == b"root"
''')
def test_setuptools_package_1():
run_setup_and_program("setuptools_package_1", '''
- import snip_setuptools_verify1
- p = snip_setuptools_verify1.C.getpwuid(0)
- assert snip_setuptools_verify1.ffi.string(p.pw_name) == b"root"
+ from snip_setuptools_module1 import _ffi
+ lib = _ffi.load_passwd()
+ p = lib.getpwuid(0)
+ assert _ffi.string(p.pw_name) == b"root"
''')
def test_setuptools_package_2():
run_setup_and_program("setuptools_package_2", '''
- import snip_setuptools_verify2
- p = snip_setuptools_verify2.C.getpwuid(0)
- assert snip_setuptools_verify2.ffi.string(p.pw_name) == b"root"
+ from snip_setuptools_module2 import _ffi
+ lib = _ffi.load_passwd()
+ p = lib.getpwuid(0)
+ assert _ffi.string(p.pw_name) == b"root"
''')
More information about the pypy-commit
mailing list