A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
Go to file
Martin Hořeňovský 8f277a54c0
Significantly refactor fatal error handling
Because new glibc has changed `MINSIGSTKSZ` to be a syscall instead
of being constant, the signal posix handling needed changes, as it
used the value in constexpr context, for deciding size of an array.
It would be simple to fix it by having the handler determine the
signal handling stack size and allocate the memory every time the
handler is being installed, but that would add another allocation
and a syscall every time a test case is entered.

Instead, I split apart the idea of preparing fatal error handlers,
and engaging them, so that the memory can be allocated only once
and still be guarded by RAII.

Also turns out that Catch2's use of `MINSIGSTKSZ` was wrong, and
we should've been using `SIGSTKSZ` the whole time, which we use now.

Closes #2178
2021-04-04 18:09:26 +02:00
.conan Upload conan releases to catch2 remote (instead of Catch2) 2020-05-06 20:49:26 +02:00
.github Update FUNDING file (-Patreon, +PayPal) 2020-07-04 20:06:27 +02:00
CMake Fix typos identified by codespell. 2019-04-10 09:42:11 +02:00
artwork Optimize in-repo PNGs 2019-09-06 12:12:47 +02:00
contrib Add deprecation warning in ParseAndCatchTests 2020-12-21 13:15:36 +01:00
docs v2.13.4 2020-12-29 15:03:40 +01:00
examples Replace a TODO comment in examples 2020-06-26 20:04:05 +02:00
include Significantly refactor fatal error handling 2021-04-04 18:09:26 +02:00
misc Fix escaping of quotes in coverage helper 2019-09-21 23:19:45 +02:00
projects Fix potential infinite loops in generators combined with section filter 2020-10-31 18:04:15 +01:00
scripts Fix updateVersionPlaceholder when the placeholder starts the line 2020-12-29 15:02:25 +01:00
single_include/catch2 v2.13.4 2020-12-29 15:03:40 +01:00
src Add the static library Catch2WithMain 2020-11-18 21:37:10 +01:00
third_party fixing UB 2020-05-29 14:56:40 +02:00
.clang-format Clang-format configuration added. 2020-06-19 09:49:10 +02:00
.gitattributes Update gitattributes 2018-07-23 10:15:52 +02:00
.gitignore Create a BUILD file for compatibility with bazel 2020-05-17 13:18:22 +02:00
.travis.yml Do not explicitly install conan 2019-10-03 00:00:17 +02:00
BUILD.bazel Add bazel support 2020-11-18 21:37:12 +01:00
CMakeLists.txt Make the build reproducible with g++-8 and clang-10 2021-01-13 18:09:24 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-08-17 07:45:12 +01:00
LICENSE.txt Renamed licence file, license should now be detected by github 2017-03-20 08:59:25 +01:00
README.md v2.13.4 2020-12-29 15:03:40 +01:00
WORKSPACE Create a BUILD file for compatibility with bazel 2020-05-17 13:18:22 +02:00
appveyor.yml Use newer version of Python on AppVeyor 2019-11-13 20:58:15 +01:00
codecov.yml Fix bunch of links to master to point to v2.x branch 2020-10-21 15:30:35 +02:00
conanfile.py Fix conan package build 2020-11-26 15:05:58 +01:00

README.md

catch logo

Github Releases Build Status Build status codecov Try online Join the chat in Discord: https://discord.gg/4CWS9zD

The latest version of the single header can be downloaded directly using this link

Catch2 is released!

If you've been using an earlier version of Catch, please see the Breaking Changes section of the release notes before moving to Catch2. You might also like to read this blog post for more details.

What's the Catch?

Catch2 is a multi-paradigm test framework for C++. which also supports Objective-C (and maybe C). It is primarily distributed as a single header file, although certain extensions may require additional headers.

How to use it

This documentation comprises these three parts:

More