summaryrefslogtreecommitdiff
path: root/numpy/f2py/tests
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2014-02-16 15:07:25 -0700
committerCharles Harris <charlesr.harris@gmail.com>2014-02-16 15:07:25 -0700
commitddcb49e5f779a9e42356914b9ec4162b722d4ab0 (patch)
treec60ddd79ccbeec804ec839ede1ab9858de404f2b /numpy/f2py/tests
parent2868dc4a0513f58eafc013f3ba3d84ae07113199 (diff)
downloadnumpy-ddcb49e5f779a9e42356914b9ec4162b722d4ab0.tar.gz
BUG: #4256: f2py, PyString_FromStringAndSize is undefined in Python3.
Use PyUString_FromStringAndSize defined in npy_3kcompat instead. Not using bytes may cause some problems, but strings seem like a better choice. As modules generated with current f2py error out, this particular use is not common and we are free to choose. Closes #4256.
Diffstat (limited to 'numpy/f2py/tests')
-rw-r--r--numpy/f2py/tests/test_callback.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/numpy/f2py/tests/test_callback.py b/numpy/f2py/tests/test_callback.py
index 98a90a28c..16464140f 100644
--- a/numpy/f2py/tests/test_callback.py
+++ b/numpy/f2py/tests/test_callback.py
@@ -34,6 +34,17 @@ cf2py intent(out) a
external fun
call fun(a)
end
+
+ subroutine string_callback(callback, a)
+ external callback
+ double precision callback
+ double precision a
+ character*1 r
+cf2py intent(out) a
+ r = 'r'
+ a = callback(r)
+ end
+
"""
@dec.slow
@@ -103,6 +114,19 @@ cf2py intent(out) a
r = t(a.mth)
assert_( r==9, repr(r))
+ def test_string_callback(self):
+
+ def callback(code):
+ if code == 'r':
+ return 0
+ else:
+ return 1
+
+ f = getattr(self.module, 'string_callback')
+ r = f(callback)
+ assert_(r == 0, repr(r))
+
+
if __name__ == "__main__":
import nose
nose.runmodule()