Author: Armin Rigo <[email protected]>
Branch: cffi-1.0
Changeset: r1793:59c86e07b247
Date: 2015-04-24 12:10 +0200
http://bitbucket.org/cffi/cffi/changeset/59c86e07b247/

Log:    Fix the tests so that they mostly run again

diff --git a/_cffi1/__init__.py b/_cffi1/__init__.py
new file mode 100644
--- /dev/null
+++ b/_cffi1/__init__.py
@@ -0,0 +1,1 @@
+from recompiler import make_c_source, recompile
diff --git a/_cffi1/_cffi_include.h b/_cffi1/_cffi_include.h
--- a/_cffi1/_cffi_include.h
+++ b/_cffi1/_cffi_include.h
@@ -167,7 +167,7 @@
     PyObject *module, *c_api_object = NULL;
     void *src;
 
-    module = PyImport_ImportModule("_cffi1_backend");
+    module = PyImport_ImportModule("_cffi_backend");
     if (module == NULL)
         goto failure;
 
@@ -181,7 +181,7 @@
     src = PyCapsule_GetPointer(c_api_object, "cffi");
     if ((uintptr_t)(((void **)src)[0]) < _CFFI_NUM_EXPORTS) {
         PyErr_SetString(PyExc_ImportError,
-                        "the _cffi1_backend module is an outdated version");
+                        "the _cffi_backend module is an outdated version");
         goto failure;
     }
     memcpy(_cffi_exports, src, _CFFI_NUM_EXPORTS * sizeof(void *));
diff --git a/_cffi1/cffi1 b/_cffi1/cffi1
deleted file mode 120000
--- a/_cffi1/cffi1
+++ /dev/null
@@ -1,1 +0,0 @@
-../cffi
\ No newline at end of file
diff --git a/_cffi1/recompiler.py b/_cffi1/recompiler.py
--- a/_cffi1/recompiler.py
+++ b/_cffi1/recompiler.py
@@ -1,5 +1,5 @@
 import os, sys
-from cffi1 import ffiplatform, model
+from cffi import ffiplatform, model
 from cffi_opcode import *
 
 
@@ -183,7 +183,7 @@
         prnt('};')
         prnt()
         #
-        # the init function, loading _cffi1_backend and calling a method there
+        # the init function, loading _cffi_backend and calling a method there
         prnt('PyMODINIT_FUNC')
         prnt('init%s(void)' % (self.module_name,))
         prnt('{')
@@ -695,6 +695,6 @@
     for name in dir(module.ffi):
         if not name.startswith('_'):
             attr = getattr(module.ffi, name)
-            if attr is not getattr(ffi, name):
+            if attr is not getattr(ffi, name, object()):
                 setattr(ffi, name, attr)
     return module.lib
diff --git a/_cffi1/test_dlopen.py b/_cffi1/test_dlopen.py
--- a/_cffi1/test_dlopen.py
+++ b/_cffi1/test_dlopen.py
@@ -1,4 +1,6 @@
 import py
+py.test.skip("later")
+
 from cffi1 import FFI
 import math
 
@@ -48,7 +50,6 @@
     assert ffi.sizeof("struct foo_s") == ffi.sizeof("void *")
 
 def test_math_sin():
-    py.test.skip("XXX redo!")
     ffi = FFI()
     ffi.cdef("double sin(double);")
     m = ffi.dlopen('m')
diff --git a/_cffi1/test_ffi_obj.py b/_cffi1/test_ffi_obj.py
--- a/_cffi1/test_ffi_obj.py
+++ b/_cffi1/test_ffi_obj.py
@@ -1,5 +1,5 @@
 import py
-import _cffi1_backend
+import _cffi_backend as _cffi1_backend
 
 
 def test_ffi_new():
diff --git a/_cffi1/test_parse_c_type.py b/_cffi1/test_parse_c_type.py
--- a/_cffi1/test_parse_c_type.py
+++ b/_cffi1/test_parse_c_type.py
@@ -251,9 +251,9 @@
                                                         '->', Pointer(0)]
 
 def test_cffi_opcode_sync():
-    import cffi_opcode, cffi1.model
+    import cffi_opcode, cffi.model
     for name in dir(lib):
         if name.startswith('_CFFI_'):
             assert getattr(cffi_opcode, name[6:]) == getattr(lib, name)
     assert sorted(cffi_opcode.PRIMITIVE_TO_INDEX.keys()) == (
-        sorted(cffi1.model.PrimitiveType.ALL_PRIMITIVE_TYPES.keys()))
+        sorted(cffi.model.PrimitiveType.ALL_PRIMITIVE_TYPES.keys()))
diff --git a/_cffi1/test_realize_c_type.py b/_cffi1/test_realize_c_type.py
--- a/_cffi1/test_realize_c_type.py
+++ b/_cffi1/test_realize_c_type.py
@@ -2,8 +2,8 @@
 
 
 def check(input, expected_output=None, expected_ffi_error=False):
-    import _cffi1_backend
-    ffi = _cffi1_backend.FFI()
+    import _cffi_backend
+    ffi = _cffi_backend.FFI()
     if not expected_ffi_error:
         ct = ffi.typeof(input)
         assert isinstance(ct, ffi.CType)
diff --git a/_cffi1/test_recompiler.py b/_cffi1/test_recompiler.py
--- a/_cffi1/test_recompiler.py
+++ b/_cffi1/test_recompiler.py
@@ -1,6 +1,6 @@
 import py
-import recompiler
-from cffi1 import FFI
+from cffi import FFI
+from _cffi1 import recompiler
 
 
 def check_type_table(input, expected_output):
diff --git a/_cffi1/test_verify1.py b/_cffi1/test_verify1.py
--- a/_cffi1/test_verify1.py
+++ b/_cffi1/test_verify1.py
@@ -1,5 +1,6 @@
 import sys, math, py
-from cffi1 import FFI, VerificationError, model
+from cffi import FFI, VerificationError, model
+from _cffi1 import recompiler
 
 lib_m = ['m']
 if sys.platform == 'win32':
@@ -7,7 +8,7 @@
     import distutils.ccompiler
     if distutils.ccompiler.get_default_compiler() == 'msvc':
         lib_m = ['msvcrt']
-    pass      # no obvious -Werror equivalent on MSVC
+    extra_compile_args = []      # no obvious -Werror equivalent on MSVC
 else:
     if (sys.platform == 'darwin' and
           [int(x) for x in os.uname()[2].split('.')] >= [11, 0, 0]):
@@ -19,10 +20,13 @@
         # assume a standard gcc
         extra_compile_args = ['-Werror', '-Wall', '-Wextra', '-Wconversion']
 
-    class FFI(FFI):
-        def verify(self, *args, **kwds):
-            return super(FFI, self).verify(
-                *args, extra_compile_args=extra_compile_args, **kwds)
+class FFI(FFI):
+    _verify_counter = 0
+    def verify(self, preamble='', *args, **kwds):
+        FFI._verify_counter += 1
+        return recompiler.verify(self, 'verify%d' % FFI._verify_counter,
+                                 preamble, *args,
+                                extra_compile_args=extra_compile_args, **kwds)
 
 class U(object):
     def __add__(self, other):
@@ -49,8 +53,8 @@
 
 def test_missing_function_import_error():
     # uses the original FFI that just gives a warning during compilation
-    import cffi1
-    test_missing_function(ffi=cffi1.FFI())
+    import cffi
+    test_missing_function(ffi=cffi.FFI())
 
 def test_simple_case():
     ffi = FFI()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to