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
Billy Robert O'Neal III b1dcdc5032 Fix invalid isspace call detected by PREfast
D:\vcpkg\toolsrc\include\catch2\catch.hpp(11285): warning C6330: 'char' passed as _Param_(1) when 'unsigned char' is required in call to 'isspace'.
D:\vcpkg\toolsrc\include\catch2\catch.hpp(11288): warning C6330: 'char' passed as _Param_(1) when 'unsigned char' is required in call to 'isspace'.

ISO/IEC 9899:2011:
"7.4 Character handling <ctype.h>"/1
[...] In all cases the argument is an int, the value of which shall be
representable as an unsigned char or shall equal the value of the macro
EOF. If the argument has any other value, the behavior is undefined.

This means if isspace was passed a character like ñ it could corrupt
memory without the static_cast to treat it as a positive value after
integral promotion (and C libraries commonly use the int index supplied
as a key into a table which result in out of bounds access if the
resulting int is negative).
2020-05-12 14:07:22 +02:00
.conan Upload conan releases to catch2 remote (instead of Catch2) 2020-05-06 20:49:26 +02:00
.github Add a FUNDING file 2019-06-07 19:15:35 +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 Change PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME conditional. 2020-03-27 09:55:06 +01:00
docs v2.12.1 2020-04-21 19:30:38 +02:00
examples Some refactorings: 2020-01-25 09:01:04 +01:00
include Fix invalid isspace call detected by PREfast 2020-05-12 14:07:22 +02:00
misc Fix escaping of quotes in coverage helper 2019-09-21 23:19:45 +02:00
projects Add support for bitwise xor to the decomposer 2020-04-21 19:27:12 +02:00
scripts Move all scripts to Python3 2020-03-19 12:36:30 +01:00
single_include/catch2 v2.12.1 2020-04-21 19:30:38 +02:00
third_party Fix vendored dep because upstream is non-responsive 2019-04-10 20:17:25 +02:00
.gitattributes Update gitattributes 2018-07-23 10:15:52 +02:00
.gitignore Update Conan recipe 2018-11-19 15:27:47 +01: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
CMakeLists.txt v2.12.1 2020-04-21 19:30:38 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-08-17 07:45:12 +01:00
codecov.yml Add SonarQube Generic Test Data reporter 2019-10-27 10:02:41 +01: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 v2.12.1 2020-04-21 19:30:38 +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