Releases: catchorg/Catch2
v1.7.1
Fixes:
- Fixed inconsistency in defining
NOMINMAX
andWIN32_LEAN_AND_MEAN
insidecatch.hpp
. - Fixed SEH-related compilation error under older MinGW compilers, by making Windows SEH handling opt-in for compilers other than MSVC.
- For specifics, look into the documentation.
- Fixed compilation error under MinGW caused by improper compiler detection.
- Fixed XML reporter sometimes leaving an empty output file when a test ends with signal/structured exception.
- Fixed XML reporter not reporting captured stdout/stderr.
- Fixed possible infinite recursion in Windows SEH.
- Fixed possible compilation error caused by Catch's operator overloads being ambiguous in regards to user-defined templated operators.
v1.7.0
Features/ Changes:
- Catch now runs significantly faster for passing tests
- Microbenchmark focused on Catch's overhead went from ~3.4s to ~0.7s.
- Real world test using JSON for Modern C++'s test suite went from ~6m 25s to ~4m 14s.
- Catch can now run specific sections within test cases.
- For now the support is only basic (no wildcards or tags), for details see the documentation.
- Catch now supports SEH on Windows as well as signals on Linux.
- After receiving a signal, Catch reports failing assertion and then passes the signal onto the previous handler.
- Approx can be used to compare values against strong typedefs (available in C++11 mode only).
- Strong typedefs mean types that are explicitly convertible to double.
- CHECK macro no longer stops executing section if an exception happens.
- Certain characters (space, tab, etc) are now pretty printed.
- This means that a
char c = ' '; REQUIRE(c == '\t');
would be printed as' ' == '\t'
, instead of== 9
.
- This means that a
Fixes:
- Text formatting no longer attempts to access out-of-bounds characters under certain conditions.
- THROW family of assertions no longer trigger
-Wunused-value
on expressions containing explicit cast. - Breaking into debugger under OS X works again and no longer requires
DEBUG
to be defined. - Compilation no longer breaks under certain compiler if a lambda is used inside assertion macro.
Other:
- Catch's CMakeLists now defines install command.
- Catch's CMakeLists now generates projects with warnings enabled.
v1.6.1
Features/ Changes:
- Catch now supports breaking into debugger on Linux
Fixes:
- Generators no longer leak memory (generators are still unsupported in general)
- JUnit reporter now reports UTC timestamps, instead of "tbd"
CHECK_THAT
macro is now properly defined asCATCH_CHECK_THAT
when usingCATCH_
prefixed macros
Other:
- Types with overloaded
&&
operator are no longer evaluated twice when used in an assertion macro. - The use of
__COUNTER__
is supressed when Catch is parsed by CLion- This change is not active when compiling a binary
- Approval tests can now be run on Windows
- CMake will now warn if a file is present in the
include
folder but not is not enumerated as part of the project - Catch now defines
NOMINMAX
andWIN32_LEAN_AND_MEAN
before includingwindows.h
- This can be disabled if needed, see documentation for details.
v1.6.0
Cmake/ projects:
- Moved CMakeLists.txt to root, made it friendlier for CLion and generating XCode and VS projects, and removed the manually maintained XCode and VS projects.
Features/ Changes:
- Approx now supports
>=
and<=
- Can now use
\
to escape chars in test names on command line - Standardize C++11 feature toggles
Fixes:
- Blue shell colour
- Missing argument to
CATCH_CHECK_THROWS
- Don't encode extended ASCII in XML
- use std::shuffle on more compilers (fixes deprecation warning/error)
- Use
__COUNTER__
more consistently (where available)
Other:
- Tweaks and changes to scripts - particularly for Approval test - to make them more portable
V1.5.0
Now uses Clara 0.0.2.3 - which has a new parser and now supports forward slash introduced short opts on Windows.
v1.4.0
Unique names are generated using COUNTER, where possible, to make them unique even across translation units.
The --use-colour command line argument has been added to given finer control over how colour is used
- various other bug fixes and documentation corrections.
v1.3.0
Release notes:
Can manually register test functions (as discussed in #421).
Exception translators considered even for types deriving from std::exception (#498)
Added &&, || and ! operator overloads for matchers
Not matcher #482
New section tracker (mostly for internal reasons - but also fixes #519)
Fix infinite loop/ uncaught_exception issue #495, #271 (and possibly #352)
Added Listeners (programatically provided extra reporters) #475
Set group name to -n parameter (or exe name) - as discussed in #469
long long support #97
_THROWS_WITH macros - with matchers #394
Reseeds rng before each test case and provides access to seed through Catch::rngSeed() function #453
v1.2.1
First tagged, semantically versioned, release
Going forward releases should follow the GitHub approach. Release commits will be tagged and the versioning is now following proper Semantic Versioning.
I'll try and write release notes too.