Catch2 is a multi-paradigm test framework for C++. It also supports
2025-01-17 20:13:45 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
catch2: updated to 3.8.0
3.8.0
Improvements
* Added `std::initializer_list` overloads for `(Unordered)RangeEquals` matcher
* Added explicit casts to silence GCC's `Wconversion`
* Made the use of `builtin_constant_p` tricks in assertion macros configurable
* It is used to prod GCC-like compilers into providing warnings for the \
asserted expressions, but the compilers miscompile it annoyingly often.
* Cleaned out Clang-Tidy's `performance-enum-size` warnings
* Added support for using `from_range` generator with iterators with `value_type \
= const T`
* This is not correct `value_type` typedef, but it is used in the wild and the \
change does not make the code meaningfully worse.
Fixes
* Fixed crash when stringifying pre-1970 (epoch) dates on Windows
Miscellaneous
* Fixes and improvements for `catch_discover_tests` CMake helper
* Removed redundant `CTEST_FILE` param when creating the indirection file for \
`PRE_TEST` discovery mode
* Rewrote the test discovery logic to use output from the JSON reporter
* This means that `catch_discover_tests` now requires CMake 3.19 or newer
* Added `ADD_TAGS_AS_LABELS` option. If specified, each CTest test will be \
labeled with corrensponding Catch2's test tag
* Bumped up the minimum required CMake version to build Catch2 to 3.16
* Meson build now provides option to avoid installing Catch2
* Bazel build is moved to Bzlmod.
|
2024-09-17 14:16:51 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
catch2: updated to 3.7.1
3.7.1
Improvements
Applied the JUnit reporter's optimization from last release to the SonarQube reporter
Suppressed -Wuseless-cast in CHECK_THROWS_MATCHES
Standardize exit codes for various failures
Running no tests is now guaranteed to exit with 2 (without the \
--allow-running-no-tests flag)
All tests skipped is now always 4 (...)
Assertion failures are now always 42
and so on
Fixes
Fixed out-of-bounds access when the arg parser encounters single - as an argument
Miscellaneous
Added catch_config_prefix_messages.hpp to meson build
catch_discover_tests now supports skipped tests
You can get the old behaviour by calling catch_discover_tests with \
SKIP_IS_FAILURE option.
|
2024-08-20 11:29:46 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
catch2: updated to 3.7.0
v3.7.0
Improvements
Slightly improved compile times of benchmarks
Made the resolution estimation in benchmarks slightly more precise
Added new test case macro, TEST_CASE_PERSISTENT_FIXTURE
Unlike TEST_CASE_METHOD, the same underlying instance is used for all partial \
runs of that test case
MASSIVELY improved performance of the JUnit reporter when handling successful \
assertions
For 1 test case and 10M assertions, the new reporter runs 3x faster and uses up \
only 8 MB of memory, while the old one needs 7 GB of memory.
Reworked how output redirects works.
Combining a reporter writing to stdout with capturing reporter no longer leads \
to the capturing reporter seeing all of the other reporter's output.
The file based redirect no longer opens up a new temporary file for each partial \
test case run, so it will not run out of temporary files when running many tests \
in single process.
Miscellaneous
Better documentation for matchers on thrown exceptions (REQUIRE_THROWS_MATCHES)
Improved catch_discover_tests's handling of environment paths
It won't reorder paths in DL_PATHS or DYLD_FRAMEWORK_PATHS args
It won't overwrite the environment paths for test discovery
|
2024-05-29 13:10:02 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
catch2: updated to 3.6.0
v3.6.0
Fixes
Fixed Windows ARM64 build by fixing the preprocessor condition guarding use \
_umul128 intrinsic.
Fixed Windows ARM64EC build by removing intrinsic pragma it does not understand.
Why doesn't the x64-emulation build mode understand x64 pragmas? Don't ask me, \
ask the MSVC guys.
Fixed the JUnit reporter sometimes crashing when reporting a fatal error.
The binary will still exit, but through the original error, rather than \
secondary error inside the reporter.
The underlying fix applies to all reporters, not just the JUnit one, but only \
JUnit was currently causing troubles.
Improvements
Disable -Wnon-virtual-dtor in Decomposer and Matchers
precision in floating point stringmakers defaults to max_digits10.
This means that floating point values will be printed with enough precision to \
disambiguate any two floats.
Column wrapping ignores ansi colour codes when calculating string width
This makes the output much more readable when the provided messages contain \
colour codes.
Miscellaneous
Conan support improvements
compatibility_cppstr is set to False.
This means that Conan won't let you mix library and project with different C++ \
standard settings.
The implementation library CMake target name through Conan is properly set to \
Catch2::Catch2
SelfTest target can be built through Bazel
|
2024-04-14 19:41:14 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
catch2: updated to 3.5.4
3.5.4
Fixes
* Fixed potential compilation error when asked to generate random integers whose \
type did not match `std::(u)int*_t`.
* This manifested itself when generating random `size_t`s on MacOS
* Added missing outlined destructor causing `Wdelete-incomplete` when compiling \
against libstdc++ in C++23 mode
* Fixed regression where decomposing assertion with const instance of \
`std::foo_ordering` would not compile
Improvements
* Reintroduced support for GCC 5 and 6
* As with VS2017, if they start causing trouble again, they will be dropped again.
* Added workaround for targetting newest MacOS (Sonoma) using GCC
* `CATCH_CONFIG_DEFAULT_REPORTER` can now be an arbitrary reporter spec
* Previously it could only be a plain reporter name, so it was impossible to \
compile in custom arguments to the reporter.
* Improved performance of generating 64bit random integers by 20+%
Miscellaneous
* Significantly improved Conan in-tree recipe
* `DL_PATHS` in `catch_discover_tests` now supports multiple arguments
* Fixed preprocessor logic for checking whether we expect reproducible floating \
point results in tests.
* Improved the floating point tests structure to avoid `Wunused` when the \
reproducibility tests are disabled
|
2024-03-02 13:47:19 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
catch2: updated to 3.5.3
3.5.3
Fixes
* Fixed OOB access when computing filename tag (from the `-#` flag) for file \
without extension
* Fixed the linking against `log` on Android to be `PRIVATE`
* Fixed `Wuseless-cast` in benchmarking internals
Improvements
* Restored compatibility with VS2017
* The baseline for Catch2 is still C++14 with some reasonable workarounds for \
specific compilers, so if VS2017 starts acting up again, the support will be \
dropped again.
* Suppressed clang-tidy's `bugprone-chained-comparison` in assertions
* Improved the static analysis mode to evaluate arguments to `TEST_CASE` and \
`SECTION`
* Clang-tidy should no longer warn about runtime arguments to these macros \
being unused in static analysis mode.
* Clang-tidy can warn on issues involved arguments to these macros.
* Added support for literal-zero detectors based on `consteval` constructors
* This is required for compiling `REQUIRE((a <=> b) == 0)` against MSVC's \
stdlib.
* Sadly, MSVC still cannot compile this assertion as it does not implement \
C++20 correctly.
* You can use `clang-cl` with MSVC's stdlib instead.
* If for some godforsaken reasons you want to understand this better, read the \
two relevant commits: \
[`dc51386b9fd61f99ea9c660d01867e6ad489b403`](https://github.com/catchorg/Catch2/commit/dc51386b9fd61f99ea9c660d01867e6ad489b403), \
and \
[`0787132fc82a75e3fb255aa9484ca1dc1eff2a30`](https://github.com/catchorg/Catch2/commit/0787132fc82a75e3fb255aa9484ca1dc1eff2a30).
Miscellaneous
* Disabled tests for FP random generator reproducibility on non-SSE2 x86 targets
* Modified the in-tree Conan recipe to support Conan 2
|
2024-01-18 10:52:28 by Niclas Rosenvik | Files touched by this commit (4) |
Log message:
catch2: make sure catch::isnan() is seen on SunOS
|
2024-01-16 07:23:58 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
catch2: updated to 3.5.2
v3.5.2
Fixed -Wsubobject-linkage in the Console reporter
Fixed adding new CLI Options to lvalue parser using |
|