Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r1205:5a456356e4ee
Date: 2013-03-29 17:46 +0100
http://bitbucket.org/cffi/cffi/changeset/5a456356e4ee/

Log:    Test and fix for pull request #11: anonymous enums.

diff --git a/cffi/api.py b/cffi/api.py
--- a/cffi/api.py
+++ b/cffi/api.py
@@ -386,8 +386,9 @@
             return
         #
         if not copied_enums:
+            from . import model
             for key, tp in ffi._parser._declarations.items():
-                if not key.startswith('enum '):
+                if not isinstance(tp, model.EnumType):
                     continue
                 for enumname, enumval in zip(tp.enumerators, tp.enumvalues):
                     if enumname not in library.__dict__:
diff --git a/testing/test_function.py b/testing/test_function.py
--- a/testing/test_function.py
+++ b/testing/test_function.py
@@ -336,9 +336,12 @@
 
     def test_constants_on_lib(self):
         ffi = FFI(backend=self.Backend())
-        ffi.cdef("""enum foo_e { AA, BB, CC=5, DD };""")
+        ffi.cdef("""enum foo_e { AA, BB, CC=5, DD };
+                    typedef enum { EE=-5, FF } some_enum_t;""")
         lib = ffi.dlopen(None)
         assert lib.AA == 0
         assert lib.BB == 1
         assert lib.CC == 5
         assert lib.DD == 6
+        assert lib.EE == -5
+        assert lib.FF == -4
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to