Use Catch2 for MMDevice/MMCore unit tests #420
Merged
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
in the hope of making it easier to add tests going forward.
The only way we run these tests in CI is via the experimental Meson build (using GitHub Actions), so there is not much point in maintaining the Automake-based way of running them (which is cumbersome to set up and does not have a Windows counterpart).
GoogleTest was the best option for C++98/03, but Catch2 is more popular with modern C++; it allows a natural syntax for assertions (auto-decomposes expressions) and requires very little boilerplate to reuse the setup or write parameterized tests (as can be seen by the changes to
LoggingSplitEntryIntoLines-Tests.cpp
in this PR). Hopefully this switch is not controversial (seeing that I seem to be the only person who has ever touched these tests).There are a couple of device adapters that have unit tests (HamiltonMVP, UserDefinedSerial). These are left using GoogleTest and Automake for the time being.