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ý 765ac08f08
Fix potential infinite loops in generators combined with section filter
The problem was that under specific circumstances, namely that none
of their children progressed, `GeneratorTracker` will not progress.
This was changed recently, to allow for code like this, where a
`SECTION` follows a `GENERATE` at the same level:

```cpp
SECTION("A") {}
auto a = GENERATE(1, 2);
SECTION("B") {}
```

However, this interacted badly with `SECTION` filters (`-c foo`),
as they could deactivate all `SECTION`s below a generator, and thus
stop it from progressing forever. This commit makes GeneratorTracker
check whether there are any filters active, and if they are, it checks
whether its section-children can ever run.

Fixes #2025
2020-10-31 18:04:15 +01: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
artwork Optimize in-repo PNGs 2019-09-06 12:12:47 +02:00
CMake Fix typos identified by codespell. 2019-04-10 09:42:11 +02:00
contrib Consider CMP0110 add_test() policy 2020-10-20 23:25:45 +02:00
docs Fix bunch of links to master to point to v2.x branch 2020-10-21 15:30:35 +02:00
examples Replace a TODO comment in examples 2020-06-26 20:04:05 +02:00
include Fix potential infinite loops in generators combined with section filter 2020-10-31 18:04:15 +01: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 Make scripts/updateDocumentToC.py executable. 2020-06-18 21:28:08 +02:00
single_include/catch2 v2.13.2 2020-10-07 11:43:02 +02: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
appveyor.yml Use newer version of Python on AppVeyor 2019-11-13 20:58:15 +01:00
BUILD.bazel Create a BUILD file for compatibility with bazel 2020-05-17 13:18:22 +02:00
CMakeLists.txt v2.13.2 2020-10-07 11:43:02 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-08-17 07:45:12 +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 Provide path of the cmake scripts to conan 2020-04-23 18:11:41 +02:00
LICENSE.txt Renamed licence file, license should now be detected by github 2017-03-20 08:59:25 +01:00
README.md Fix bunch of links to master to point to v2.x branch 2020-10-21 15:30:35 +02:00
WORKSPACE Create a BUILD file for compatibility with bazel 2020-05-17 13:18:22 +02:00

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