[pypy-commit] cffi qualtypes: fixes

arigo noreply at buildbot.pypy.org
Wed Sep 30 12:08:07 CEST 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: qualtypes
Changeset: r2286:4ef1d72e9b05
Date: 2015-09-30 12:00 +0200
http://bitbucket.org/cffi/cffi/changeset/4ef1d72e9b05/

Log:	fixes

diff --git a/cffi/recompiler.py b/cffi/recompiler.py
--- a/cffi/recompiler.py
+++ b/cffi/recompiler.py
@@ -203,8 +203,7 @@
 
     def _generate(self, step_name):
         lst = self.ffi._parser._declarations.items()
-        lst.sort()
-        for name, (tp, quals) in lst:
+        for name, (tp, quals) in sorted(lst):
             kind, realname = name.split(' ', 1)
             try:
                 method = getattr(self, '_generate_cpy_%s_%s' % (kind,
diff --git a/testing/cffi1/test_recompiler.py b/testing/cffi1/test_recompiler.py
--- a/testing/cffi1/test_recompiler.py
+++ b/testing/cffi1/test_recompiler.py
@@ -1208,7 +1208,7 @@
         py.test.skip("'__restrict__' probably not recognized")
     ffi = FFI()
     ffi.cdef("""struct foo_s { void * restrict b; };""")
-    lib = verify(ffi, 'test_const_fields', """
+    lib = verify(ffi, 'test_restrict_fields', """
         struct foo_s { void * __restrict__ b; };""")
     foo_s = ffi.typeof("struct foo_s")
     assert foo_s.fields[0][0] == 'b'
@@ -1270,3 +1270,13 @@
     """)
     assert lib.myfoo.x == 40
     assert lib.myfoo.y == 2
+
+def test_const_via_typedef():
+    ffi = FFI()
+    ffi.cdef("""typedef const int const_t; const_t aaa;""")
+    lib = verify(ffi, 'test_const_via_typedef', """
+        typedef const int const_t;
+        #define aaa 42
+    """)
+    assert lib.aaa == 42
+    py.test.raises(AttributeError, "lib.aaa = 43")


More information about the pypy-commit mailing list