[pypy-commit] cffi default: A test with a global callback that we set from a Python function.
arigo
noreply at buildbot.pypy.org
Fri Jun 15 20:57:13 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r376:c1ff6d753e22
Date: 2012-06-15 20:47 +0200
http://bitbucket.org/cffi/cffi/changeset/c1ff6d753e22/
Log: A test with a global callback that we set from a Python function.
Mildly impressive: it works out of the box.
diff --git a/testing/test_verify.py b/testing/test_verify.py
--- a/testing/test_verify.py
+++ b/testing/test_verify.py
@@ -415,3 +415,17 @@
lib.stuff.x = -6
assert lib.foo(0) == -42
assert lib.foo(1) == 35
+
+def test_access_callback():
+ ffi = FFI()
+ ffi.cdef("int (*cb)(int);\n"
+ "int foo(int);")
+ lib = ffi.verify("""
+ static int g(int x) { return x * 7; }
+ static int (*cb)(int) = g;
+ static int foo(int i) { return cb(i) - 1; }
+ """)
+ assert lib.foo(6) == 41
+ my_callback = ffi.callback("int(*)(int)", lambda n: n * 222)
+ lib.cb = my_callback
+ assert lib.foo(4) == 887
More information about the pypy-commit
mailing list