Improvements
- Improved suppression of
-Wparentheses
for older GCCs- Turns out that even GCC 9 does not properly handle
_Pragma
s in the C++ frontend.
- Turns out that even GCC 9 does not properly handle
- Added type constraints onto
random
generator (#2433)- These constraints copy what the standard says for the underlying
std::uniform_int_distribution
- These constraints copy what the standard says for the underlying
- Suppressed -Wunused-variable from nvcc (#2306, #2427)
- Suppressed -Wunused-variable from MinGW (#2132)
- Added All/Any/NoneTrue range matchers (#2319)
- These check that all/any/none of boolean values in a range are true.
- The JUnit reporter now normalizes classnames from C++ namespaces to Java-like namespaces (#2468)
- This provides better support for other JUnit based tools.
- The Bazel support now understands
BAZEL_TEST
environment variable (#2459)- The
CATCH_CONFIG_BAZEL_SUPPORT
configuration option is also still supported.
- The
- Returned support for compiling Catch2 with GCC 5 (#2448)
- This required removing inherited constructors from Catch2's internals.
- I recommend updating to a newer GCC anyway.
catch_discover_tests
now has a new options for setting library load path(s) when running the Catch2 binary (#2467)
Fixes
- Fixed crash when listing listeners without any registered listeners (#2442)
- Fixed nvcc compilation error in constructor benchmarking helper (#2477)
- Catch2's CMakeList supports pre-3.12 CMake again (#2428)
- The gain from requiring CMake 3.12 was very minor, but y'all should really update to newer CMake
Miscellaneous
- Fixed SelfTest build on MinGW (#2447)
- The in-repo conan recipe exports the CMake helper (#2460)
- Added experimental CMake script to showcase using test case sharding together with CTest
- Compared to
catch_discover_tests
, it supports very limited number of options and customization
- Compared to
- Added documentation page on best practices when running Catch2 tests
- Catch2 can be built as a dynamic library (#2397, #2398)
- Note that Catch2 does not have visibility annotations, and you are responsible for ensuring correct visibility built into the resulting library.