[pypy-commit] cffi default: Add test for approximate return types

dalcinl noreply at buildbot.pypy.org
Fri Nov 21 20:37:33 CET 2014


Author: Lisandro Dalcin <dalcinl at gmail.com>
Branch: 
Changeset: r1576:4ebadac73fae
Date: 2014-04-30 14:18 +0300
http://bitbucket.org/cffi/cffi/changeset/4ebadac73fae/

Log:	Add test for approximate return types

diff --git a/testing/test_verify.py b/testing/test_verify.py
--- a/testing/test_verify.py
+++ b/testing/test_verify.py
@@ -109,17 +109,19 @@
     assert res != math.sin(1.23)     # not exact, because of double->float
     assert abs(res - math.sin(1.23)) < 1E-5
 
-def test_strlen_exact():
+def test_return_exact():
     ffi = FFI()
     ffi.cdef("size_t strlen(const char *s);")
     lib = ffi.verify("#include <string.h>")
     assert lib.strlen(b"hi there!") == 9
 
-def test_strlen_approximate():
-    ffi = FFI()
-    ffi.cdef("size_t strlen(char *s);")
-    lib = ffi.verify("#include <string.h>")
-    assert lib.strlen(b"hi there!") == 9
+def test_return_approximate():
+    for typename in ['short', 'int', 'long', 'long long']:
+        ffi = FFI()
+        ffi.cdef("%s foo(signed char x);" % typename)
+        lib = ffi.verify("signed char foo(signed char x) { return x;}")
+        assert lib.foo(-128) == -128
+        assert lib.foo(+127) == +127
 
 def test_strlen_array_of_char():
     ffi = FFI()


More information about the pypy-commit mailing list