Replace pFUnit with test-drive for running unit tests #2276
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is ready to be merged.
Feature or improvement description
This PR replaces the pFUnit unit testing framework with test-drive.
test-driveis a much simpler framework which doesn't require Python and CMake to generate the tests. This allows the unit testing code to be more easily managed and used for debugging astest-driveis just standard Fortran code.Related issue, if one exists
This PR is an alternative to upgrading pFUnit as in #2273.
Impacted areas of the software
Unit tests in AeroDyn, BeamDyn, InflowWind, NWTC Library, and VersionInfo have been migrated to the new framework. The
unit_testsdirectory has been significantly reworked and the documentation on unit testing has been updated.Additional supporting information
pFUnitwas included as a submodule and had not been updated in a long time.test-driveis two Fortran files which the author allows to be distributed as part of other source code, it is licensed under Apache v2 and is compatible with the OpenFAST license. Thetest-drivesource, along with it's README and license files have been added inunit_tests/test-drive. ThepFUnitsubmodule was removed and the existing tests reorganized according to the new framework.