From 43fe8d6775a2a9db63fd00c63c14c7ee2efae01f Mon Sep 17 00:00:00 2001 From: Rohit Goswami Date: Fri, 10 Jun 2022 03:52:55 +0000 Subject: TST: Ensure long_long in f2cmap works --- numpy/f2py/tests/src/f2cmap/.f2py_f2cmap | 1 + numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 | 9 +++++++++ numpy/f2py/tests/test_f2cmap.py | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 numpy/f2py/tests/src/f2cmap/.f2py_f2cmap create mode 100644 numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 create mode 100644 numpy/f2py/tests/test_f2cmap.py (limited to 'numpy') 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 -- cgit v1.2.1