A consistent, reliable way of testing and benchmarking GEL would be beneficial for my project (and GEL as well).
A short list of changes:
-
The Github workflow is set to run on [push], it should be set to run on [push, pull_request]. The workflow already calls ctest meaning no other changes are needed.
-
Add include(ctest) to the top level CMakeLists.txt to enable testing.
-
Include all of the test projects in the top CMakeLists.txt and set their binaries as tests. Edit the test project CMakeLists.txt files so they can be run both ways. (I have also noticed that the project names and the find_library commands were incorrect in a number of these projects).
-
Update documentation to reflect the changes.
I have already begun working on these changes and can create a PR fairly quickly.
Other Potential Changes:
These changes are not immediately relevant to the task at hand and are more disruptive, but may help long term maintainability.
- Move test and demo directories outside of src. This is the more common way to structure C++ projects.
- Get rid of the platform specific globbing in the main CMakeLists.txt and include the exact set of dependencies instead.
- Move headers to an include directory.
A consistent, reliable way of testing and benchmarking GEL would be beneficial for my project (and GEL as well).
A short list of changes:
The Github workflow is set to run on [push], it should be set to run on [push, pull_request]. The workflow already calls ctest meaning no other changes are needed.
Add include(ctest) to the top level CMakeLists.txt to enable testing.
Include all of the test projects in the top CMakeLists.txt and set their binaries as tests. Edit the test project CMakeLists.txt files so they can be run both ways. (I have also noticed that the project names and the find_library commands were incorrect in a number of these projects).
Update documentation to reflect the changes.
I have already begun working on these changes and can create a PR fairly quickly.
Other Potential Changes:
These changes are not immediately relevant to the task at hand and are more disruptive, but may help long term maintainability.