Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aradi/fortuno.old

User friendly, flexible and extensible object-oriented Fortran unit testing framework for testing serial, MPI-parallelized and coarray-parallelized applications
https://github.com/aradi/fortuno.old

fortran fortran2018 object-oriented-programming unittest

Last synced: about 6 hours ago
JSON representation

User friendly, flexible and extensible object-oriented Fortran unit testing framework for testing serial, MPI-parallelized and coarray-parallelized applications

Awesome Lists containing this project

README

        

|Fortuno logo|

**************************************
Fortuno – Fortran Unit Testing Objects
**************************************

**NOTE**: The Fortuno repository had been relocated and this repository is going to be deleted soon.
Visit the project in the `new Fortuno repository `_.

The **Fortuno** project offers an object oriented unit testing framework for the
Fortran language. It aims to combine the simplicity of `test-drive
`_ with the broad range of features
offered by `pFUnit `_ and
to extend upon their capabilities. It is written in Fortran 2018 and can be
directly used in Fortran projects without a need for a special pre-processor.

**Fortuno** provides

- serial unit testing,

- parallel unit testing for MPI- and coarray-parallel projects,

- fixtured tests,

- parameterized tests

- seamless integration with the CMake systems (fpm & meson in progress)

Detailed documentation will be soon found on the `Fortuno documentation page
`_ on Read the Docs. Currently, have a look
at some of the example files in the `test folder `_.

The development can be followed on the `Fortuno project page
`_ on GitHub.

Known issues
============

In order to be flexible, expressive and simple, Fortuno uses modern Fortran
constructs quite extensively. Unfortunately, this seems to be challenging for
some compilers, as shown in the compiler table below.

+------------------------+-----------------------------------------------------+
| Compiler | Status |
+========================+=====================================================+
| Intel 2021.7 | * serial: OK |
| (x86_64/Linux) | * mpi (with Intel MPI): OK |
| | * coarray: OK |
+------------------------+-----------------------------------------------------+
| NAG 7.1 (build 7111, | * serial: OK (Release mode only) |
| x86_64/Linux) | * coarray: OK (Release mode only) |
+------------------------+-----------------------------------------------------+
| GNU 12.2 | * serial: Internal compiler error (failureinfo.f90) |
| (x86_64/Linux) | |
+------------------------+-----------------------------------------------------+

If you are aware of other compilers being able to build Fortuno, open an issue
or a pull request, so that the table can be updated accordingly.

License
=======

This project is licensed under the `BSD-2-Clause Plus Patent License
`_. The SPDX license identifier
for this project is `BSD-2-Clause-Patent
`_.

.. |Fortuno logo| image:: assets/fortuno-128.png
:alt: Fortuno unit testing framework
:target: https://fortuno.readthedocs.io