| ======================================================= | |
| F2PY unit testing site | |
| ======================================================= | |
| .. Contents:: | |
| Tests | |
| ----- | |
| * To run all F2PY unit tests in one command:: | |
| cd tests | |
| python run_all.py [<options>] | |
| For example:: | |
| localhost:~/src_cvs/f2py2e/tests$ python2.2 run_all.py 100 --quiet | |
| ********************************************** | |
| Running '/usr/bin/python2.2 f77/return_integer.py 100 --quiet' | |
| run 1000 tests in 1.87 seconds | |
| initial virtual memory size: 3952640 bytes | |
| current virtual memory size: 3952640 bytes | |
| ok | |
| ********************************************** | |
| Running '/usr/bin/python2.2 f77/return_logical.py 100 --quiet' | |
| run 1000 tests in 1.47 seconds | |
| initial virtual memory size: 3952640 bytes | |
| current virtual memory size: 3952640 bytes | |
| ok | |
| ... | |
| If some tests fail, try to run the failing tests separately (without | |
| the ``--quiet`` option) as described below to get more information | |
| about the failure. | |
| * Test intent(in), intent(out) scalar arguments, | |
| scalars returned by F77 functions | |
| and F90 module functions:: | |
| tests/f77/return_integer.py | |
| tests/f77/return_real.py | |
| tests/f77/return_logical.py | |
| tests/f77/return_complex.py | |
| tests/f77/return_character.py | |
| tests/f90/return_integer.py | |
| tests/f90/return_real.py | |
| tests/f90/return_logical.py | |
| tests/f90/return_complex.py | |
| tests/f90/return_character.py | |
| Change to tests/ directory and run:: | |
| python f77/return_<type>.py [<options>] | |
| python f90/return_<type>.py [<options>] | |
| where ``<type>`` is integer, real, logical, complex, or character. | |
| Test scripts options are described below. | |
| A test is considered succesful if the last printed line is "ok". | |
| If you get import errors like:: | |
| ImportError: No module named f77_ext_return_integer | |
| but ``f77_ext_return_integer.so`` exists in the current directory then | |
| it means that the current directory is not included in to `sys.path` | |
| in your Python installation. As a fix, prepend ``.`` to ``PYTHONPATH`` | |
| environment variable and rerun the tests. For example:: | |
| PYTHONPATH=. python f77/return_integer.py | |
| * Test mixing Fortran 77, Fortran 90 fixed and free format codes:: | |
| tests/mixed/run.py | |
| * Test basic callback hooks:: | |
| tests/f77/callback.py | |
| Options | |
| ------- | |
| You may want to use the following options when running the test | |
| scripts: | |
| ``<integer>`` | |
| Run tests ``<integer>`` times. Useful for detecting memory leaks. Under | |
| Linux tests scripts output virtual memory size state of the process | |
| before and after calling the wrapped functions. | |
| ``--quiet`` | |
| Suppress all messages. On success only "ok" should be displayed. | |
| ``--fcompiler=<Gnu|Intel|...>`` | |
| Use:: | |
| f2py -c --help-fcompiler | |
| to find out what compilers are available (or more precisely, which | |
| ones are recognized by ``numpy_distutils``). | |
| Reporting failures | |
| ------------------ | |
| XXX: (1) make sure that failures are due to f2py and (2) send full | |
| stdout/stderr messages to me. Also add compiler,python,platform | |
| information. | |