summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohit Goswami <rog32@hi.is>2022-06-10 03:52:55 +0000
committerRohit Goswami <rog32@hi.is>2022-06-10 03:53:09 +0000
commit43fe8d6775a2a9db63fd00c63c14c7ee2efae01f (patch)
tree6d8e4c02843e41d909a80e1d3965faf3f49dabbc
parent006be68a122c037bfc6b9651ad0d60d73654f54e (diff)
downloadnumpy-43fe8d6775a2a9db63fd00c63c14c7ee2efae01f.tar.gz
TST: Ensure long_long in f2cmap works
-rw-r--r--numpy/f2py/tests/src/f2cmap/.f2py_f2cmap1
-rw-r--r--numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f909
-rw-r--r--numpy/f2py/tests/test_f2cmap.py15
3 files changed, 25 insertions, 0 deletions
diff --git a/numpy/f2py/tests/src/f2cmap/.f2py_f2cmap b/numpy/f2py/tests/src/f2cmap/.f2py_f2cmap
new file mode 100644
index 000000000..a4425f887
--- /dev/null
+++ b/numpy/f2py/tests/src/f2cmap/.f2py_f2cmap
@@ -0,0 +1 @@
+dict(real=dict(real32='float', real64='double'), integer=dict(int64='long_long'))
diff --git a/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 b/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90
new file mode 100644
index 000000000..3f0e12c76
--- /dev/null
+++ b/numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90
@@ -0,0 +1,9 @@
+ subroutine func1(n, x, res)
+ use, intrinsic :: iso_fortran_env, only: int64, real64
+ implicit none
+ integer(int64), intent(in) :: n
+ real(real64), intent(in) :: x(n)
+ real(real64), intent(out) :: res
+Cf2py intent(hide) :: n
+ res = sum(x)
+ end
diff --git a/numpy/f2py/tests/test_f2cmap.py b/numpy/f2py/tests/test_f2cmap.py
new file mode 100644
index 000000000..d2967e4f7
--- /dev/null
+++ b/numpy/f2py/tests/test_f2cmap.py
@@ -0,0 +1,15 @@
+from . import util
+import numpy as np
+
+class TestF2Cmap(util.F2PyTest):
+ sources = [
+ util.getpath("tests", "src", "f2cmap", "isoFortranEnvMap.f90"),
+ util.getpath("tests", "src", "f2cmap", ".f2py_f2cmap")
+ ]
+
+ # gh-15095
+ def test_long_long_map(self):
+ inp = np.ones(3)
+ out = self.module.func1(inp)
+ exp_out = 3
+ assert out == exp_out