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