diff --git a/tests/unix/ffi_float.py b/tests/unix/ffi_float.py index 788b818be..cc12fa7ad 100644 --- a/tests/unix/ffi_float.py +++ b/tests/unix/ffi_float.py @@ -28,7 +28,6 @@ print('%.6f' % strtod('1.23', None)) # test passing double and float args libm = ffi_open(('libm.so', 'libm.so.6', 'libc.so.0', 'libc.so.6', 'libc.dylib')) tgamma = libm.func('d', 'tgamma', 'd') -tgammaf = libm.func('f', 'tgammaf', 'f') -for fun in (tgamma, tgammaf): +for fun in (tgamma,): for val in (0.5, 1, 1.0, 1.5, 4, 4.0): print('%.6f' % fun(val)) diff --git a/tests/unix/ffi_float.py.exp b/tests/unix/ffi_float.py.exp index f50613000..b9d7da2bd 100644 --- a/tests/unix/ffi_float.py.exp +++ b/tests/unix/ffi_float.py.exp @@ -6,9 +6,3 @@ 0.886227 6.000000 6.000000 -1.772454 -1.000000 -1.000000 -0.886227 -6.000000 -6.000000 diff --git a/tests/unix/ffi_float2.py b/tests/unix/ffi_float2.py new file mode 100644 index 000000000..d635a2714 --- /dev/null +++ b/tests/unix/ffi_float2.py @@ -0,0 +1,32 @@ +# test ffi float support +import sys +try: + import ffi +except ImportError: + print("SKIP") + sys.exit() + + +def ffi_open(names): + err = None + for n in names: + try: + mod = ffi.open(n) + return mod + except OSError as e: + err = e + raise err + +libm = ffi_open(('libm.so', 'libm.so.6', 'libc.so.0', 'libc.so.6', 'libc.dylib')) + +# Some libc's implement tgammaf as header macro with tgamma(), so don't assume +# it'll be in library. +try: + tgammaf = libm.func('f', 'tgammaf', 'f') +except OSError: + print("SKIP") + sys.exit() + +for fun in (tgammaf,): + for val in (0.5, 1, 1.0, 1.5, 4, 4.0): + print('%.6f' % fun(val)) diff --git a/tests/unix/ffi_float2.py.exp b/tests/unix/ffi_float2.py.exp new file mode 100644 index 000000000..58fc6a01a --- /dev/null +++ b/tests/unix/ffi_float2.py.exp @@ -0,0 +1,6 @@ +1.772454 +1.000000 +1.000000 +0.886227 +6.000000 +6.000000