| import platform |
|
|
| import pytest |
|
|
| from numpy.testing import IS_64BIT |
|
|
| from . import util |
|
|
|
|
| @pytest.mark.skipif( |
| platform.system() == "Darwin", |
| reason="Prone to error when run with numpy/f2py/tests on mac os, " |
| "but not when run in isolation", |
| ) |
| @pytest.mark.skipif( |
| not IS_64BIT, reason="32-bit builds are buggy" |
| ) |
| class TestMultiline(util.F2PyTest): |
| suffix = ".pyf" |
| module_name = "multiline" |
| code = f""" |
| python module {module_name} |
| usercode ''' |
| void foo(int* x) {{ |
| char dummy = ';'; |
| *x = 42; |
| }} |
| ''' |
| interface |
| subroutine foo(x) |
| intent(c) foo |
| integer intent(out) :: x |
| end subroutine foo |
| end interface |
| end python module {module_name} |
| """ |
|
|
| def test_multiline(self): |
| assert self.module.foo() == 42 |
|
|
|
|
| @pytest.mark.skipif( |
| platform.system() == "Darwin", |
| reason="Prone to error when run with numpy/f2py/tests on mac os, " |
| "but not when run in isolation", |
| ) |
| @pytest.mark.skipif( |
| not IS_64BIT, reason="32-bit builds are buggy" |
| ) |
| @pytest.mark.slow |
| class TestCallstatement(util.F2PyTest): |
| suffix = ".pyf" |
| module_name = "callstatement" |
| code = f""" |
| python module {module_name} |
| usercode ''' |
| void foo(int* x) {{ |
| }} |
| ''' |
| interface |
| subroutine foo(x) |
| intent(c) foo |
| integer intent(out) :: x |
| callprotoargument int* |
| callstatement {{ & |
| ; & |
| x = 42; & |
| }} |
| end subroutine foo |
| end interface |
| end python module {module_name} |
| """ |
|
|
| def test_callstatement(self): |
| assert self.module.foo() == 42 |
|
|