Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r1288:2a9609999f81 Date: 2013-07-18 21:58 +0200 http://bitbucket.org/cffi/cffi/changeset/2a9609999f81/
Log: Add a test diff --git a/c/test_c.py b/c/test_c.py --- a/c/test_c.py +++ b/c/test_c.py @@ -1230,6 +1230,23 @@ for i, f in enumerate(flist): assert f(-142) == -142 + i +def test_callback_returning_tiny_struct(): + BSChar = new_primitive_type("signed char") + BInt = new_primitive_type("int") + BStruct = new_struct_type("struct foo") + BStructPtr = new_pointer_type(BStruct) + complete_struct_or_union(BStruct, [('a', BSChar, -1), + ('b', BSChar, -1)]) + def cb(n): + return newp(BStructPtr, [-n, -3*n])[0] + BFunc = new_function_type((BInt,), BStruct) + f = callback(BFunc, cb) + s = f(10) + assert typeof(s) is BStruct + assert repr(s) == "<cdata 'struct foo' owning 2 bytes>" + assert s.a == -10 + assert s.b == -30 + def test_callback_returning_struct(): BSChar = new_primitive_type("signed char") BInt = new_primitive_type("int") _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit