From 5cb524673eff51be4b3abdf04548ac854dd32ef1 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 29 Aug 2015 17:24:29 +0300 Subject: [PATCH] tests/ffi_float: Split tgammaf() testcase to a separate test. Some libc's may implement tgammaf as a header macro using tgamma(), so don't assume it'll be in the library. --- tests/unix/ffi_float.py | 3 +-- tests/unix/ffi_float.py.exp | 6 ------ tests/unix/ffi_float2.py | 32 ++++++++++++++++++++++++++++++++ tests/unix/ffi_float2.py.exp | 6 ++++++ 4 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 tests/unix/ffi_float2.py create mode 100644 tests/unix/ffi_float2.py.exp 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