./devel/catch2, C++ test framework for unit tests

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.8.0, Package name: catch2-3.8.0, Maintainer: bsiegert

Catch2 is a multi-paradigm test framework for C++. It also supports
Objective-C (and maybe C).


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 1169.177 KB

Version history: (Expand)


CVS history: (Expand)


   2025-01-17 20:13:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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 |