-
Notifications
You must be signed in to change notification settings - Fork 762
infra: individual test executables #1212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR modernizes the GSL test infrastructure by separating tests from a single monolithic executable into individual test executables for each component. This change improves development workflow by enabling targeted testing of specific components.
- Splits the single
gsl_testsexecutable into 14 individual test executables, one per test source file - Simplifies MSVC version checks in span tests to focus on C++14 compatibility instead of specific compiler versions
- Maintains the same test coverage while improving modularity and development experience
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tests/CMakeLists.txt | Refactors build system to create individual executables for each test source file using a foreach loop |
| tests/span_tests.cpp | Simplifies MSVC version checks by removing specific version numbers and focusing on C++14 standard |
dbcffab to
1bb885c
Compare
We used have tests contained in a single executable. This was fine for testing, but it would be more convient to separate tests into indivudal modules so targeted changes could have targeted tests. This change associates each test file with its own executable. We now have 14 tests for GSL each of which testing a different component.
thanks copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1bb885c to
731955d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
|
@carsonRadtke I've opened a new pull request, #1227, to work on those changes. Once the pull request is ready, I'll request review from you. |
* Initial plan * Use file globbing for test sources instead of manual list Replace the manually maintained list of test sources with file(GLOB) to automatically discover all .cpp files in the tests directory, excluding no_exception_ensure_tests.cpp which needs special compilation flags. This approach: - Automatically picks up new test files without CMake updates - Still correctly excludes no_exception_ensure_tests.cpp - Maintains the same test build configuration - Works with both C++14 and C++20 Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com>
We used have tests contained in a single executable. This was fine for testing, but it would be more convient to separate tests into indivudal modules so targeted changes could have targeted tests.
This change associates each test file with its own executable. We now have 14 tests for GSL each of which testing a different component.